Start_python’s diary

ふたり暮らし

アラフィフ夫婦のフリーランスプラン

Kivyでテキストボックスを利用する (Python テキストボックスの配置と取得)

本日の課題と目標

テキストボックスを配置する

テキストボックスから取得する

 

はじめに

今回はテキストボックスを使用します。これでラベル、ボタン、スライダー、テキストボックスが使えるようになりました。

 

f:id:Start_python:20191115165857g:plain

 

プログラムのコード

# フル画面を解除して画面の幅と高さを設定
from kivy.config import Config
Config.set('graphics', 'fullscreen', '0')
Config.set('graphics', 'width', '300')
Config.set('graphics', 'height', '150')
from kivy.app import Pap from kivy.uix.widget import Widget from kivy.properties import StringProperty class TextWidget(Widget): # プロパティの追加 text = StringProperty() # ボタンをクリック時 def on_command(self, **kwargs): self.text = self.ids.text1.text class TestApp(App): def __init__(self, **kwargs): super(TestApp, self).__init__(**kwargs) # ウィンドウのタイトル名 self.title = 'test' def build(self): return TextWidget() if __name__ == '__main__': TestApp().run()

kvファイル (test.kv)

<TextWidget>:

    TextInput:
        id: text1
        size: 200, 30
        pos: 50, 70
        line_height: 1
        multiline: False
        hint_text: 'test'

    Label:
        id: label1
        size: 300,50
        pos: 0,100
        font_size: 18
        text: root.text

    Button:
        id: button1
        size: 100,40
        pos: 100,10
        text: "O K"
        font_size: 18
        on_press: root.on_command()

 

解説

kvファイルの最初の <○○>: がクラスの class ○○(Widget): と同じ名前にしないといけないのが今回はじめてわかりました。

今まで使ってなかった kvファイルの中の id: の使い方がわかりました。

 

プログラムの流れ

ボタンを押した時に入力文字を取得してラベルに表示させるプログラムです。

日本語に対応してなくてテキストボックスに日本語を打つことすら出来ません。

 

 

次回は日本語にも対応させたいと思います。

 

 

参考サイト

rashata.wp.xdomain.jp

speedlittle.blog93.fc2.com

 

 

 

保存ファイル

lesson36.py

 

 

文責:Luke