Posted at

Kivyの1行入力ボックスの作成方法

More than 1 year has passed since last update.

公式サイトにやり方はのってたみたいなんだけど、いろいろ試したけど読解力がだめで初心者に優しいterateilってサイトで質問しました。


teratailとは

15分調べてもわかんないならとりあえずここで聞いてくれ!答えくれるから!

っていう初心者に優しいサイト!

リンクはこちら

https://teratail.com/


自分でしてみた質問

https://teratail.com/questions/68831

ここからとべます。

早速質問を見てくれて答えてくれた方のコードをそのままコピペして

複数行ではなく1行だけを入力する処理(イベント?)を教えていただたいたので実行。

試しに適当に文字をうってEnterをおすと改行されない!

しかしこのままではウィンドウいっぱいに枠が表示されてしまう。


kvファイル

思い出したのがkvファイル。

kvファイルというのはHTMLでいうCSSのようなもの。

オブジェクトの位置や大きさなどを変更することができる。

直接メインファイルに書き込むこともできるけど分けた方がすっきりするから利用するしかない。

こんなmainファイルがあったとする


test.py

from kivy.app import App

from kivy.uix.floatlayout import FloatLayout
from kivy.uix.textinput import TextInput

class testApp(App):
def build(self):
layout = FloatLayout()
ti = TextInput(text='Hello world', multiline=False)
ti.bind(on_text_validate=self.on_enter)
layout.add_widget(ti)
return layout

def on_enter(self, ti):
print("on_enter[%s]" % (ti.text))

if __name__ == "__main__":
testApp().run()


同ディレクトリ(フォルダ)の中にtest.kvっていうファイルを用意する

中身はこんな感じ

テキストで書きたかったけど記号のせいか上手くいかなかったので画像です

bandicam 2017-03-12 23-26-38-187.jpg

こう書くことでtest.pyファイルを実行すると・・・

ドーン!

無題.png

上手くいきました!これで1歩前進!ということで1行入力ボックスの作成&場所指定方法でした!

(※terataliで回答してくださった方ありがとうございました!)


今回使用しているVersion


  • Windows10

  • Anaconda3(python3.5.2)

  • kivy1.9.1