tkinter.Tk()
root(メインウィンドウ?)の作成
rootにwidgetを配置していく
tkinter.Tk().mainloop()
メインの処理を実行
geometry
ウィンドウのサイズや位置を設定
まさにgeometry
widgetの配置
widget(オブジェクト)を作成する時は,
1. 作成するwidgetの親widgetをコンストラクタの第1引数に指定
2. pack()によって,widgetをpack方式で配置
例:
window = tkinter.Tk()
lb = tkinter.Label(window, text='my GUI')
lb.pack()
window.mainloop()
widgetの配置 part 2
widgetの配置方式は複数提供されている.
1. pack(): 縦一列もしくは横一列に配置
2. grid(): 2次元格子状に配置
3. place(): widgetの位置や大きさなどを直接指定して配置
widgetのパラメータ
dict型のメンバ変数として保存されている.
この辞書はメンバ関数config()によってアクセス可能.
widgetのパラメータ設定
以下の2つの方法で設定できる
1. コンストラクタでキーワード引数を使って設定
lb = tkinter.Label("text" = "my label")
2. オブジェクト作成後に辞書型オブジェクトのように設定
lb = tkinter.Label()
lb["text"] = "my label"
3. オブジェクト作成後にメンバ関数configを使って複数のパラメータをまとめて設定
btn = tkinter.Button()
btn.config(text = "my label",
command=my_callback)
callback関数の設定
callback関数はWidgetのコンストラクタでキーワード引数のcommandで指定
Button以外のWidgetでも同じ設定方法で良いか不明
例:
def my_callback():
print("You pushed the button!!")
window = tkinter.Tk()
btn = tkinter.Button(window,
text='my Button',
command=my_callback)
btn.pack()
window.mainloop()
widgetをアクティブにする
widgetのメンバ関数focus_set()を使うと,そのwidgetが選択された状態になる.
tkinter.Button()
文字通りボタン
ボタン押下時のコールバック関数はキーワード引数commandで指定
tkinter.Entry()
テキストボックス
get()で書き込まれている内容を取得
tkinter.Variable
pythonデータタイプ(bool, int, strとか)をtkinterで扱うために拡張したデータタイプなのかな?それぞれtkinter.BooleanVar, tkinter.IntVar, tkinter.StringVarなどに対応している.
各変数はset(), get()で値の設定,取得が可能.
tkinter.StringVar
tkinter.Variableのサブクラス
今の所必要性が全く分からない
set()関数で設定してある文字列を変更可能
テキストボックスのコマンド引数textvariableにStringVarオブジェクトを指定すると,指定したオブジェクトの文字列の内容を随時反映してくれる
疑問点
widgetの設定などを含めてclassで処理を書くと良い.コールバック関数からtkinter.Entryの値を参照できる