Tkinterの使い方
Tkinterを利用したGUIアプリケーションの作成方法をまとめる。
import
Python | |
---|---|
最低限の実装
Python | |
---|---|
タイトルバーと画面サイズの実装です。
Label
の実装
文字を表示する関数です。
ラベルを実装するためにはLabel
関数を使います。
ラベルを表示するにはgrid
関数を使います。
label
引数
引数の一部です。
text
: 実際に表示される文字sticky
: 配置に余裕があれば、引き伸ばされます。Tk.CENTER
: 中央Tk.N
: 上Tk.S
: 下Tk.W
: 右Tk.E
: 左
Tk.NW
のようにすれば右上に配置されます。英語の方角に対応しています。
Tk.N + Tk.S
のように足し算すると、上下に引き伸ばされます。
CENTER
以外を足すと、全体的に引き伸ばされます。
grid
とは
生成したラベルやボタンなどを表示させるためには、いくつか方法があります。
その一つがgrid
です。
grid
は行と列を指定して配置する方法です。
ほかの方法はpack
、place
になります。
grid
引数
引数の一部です。
* row
: 行指定
* rowspan
: 複数行に配置するときに使います
* column
: 列指定
* columnspan
: 複数列に配置するときに使います
Entry
の実装
1行だけのテキストボックスを実装するときに使います。
Entry
の引数
引数の一部です。
width
: 幅を設定します
Entry
のメソッド
メソッドの一部です。
get()
: 入力された文字列を取得しますdelete(first, last)
: 引数で与えられた分を含んで消去します。文字列の先頭を0として指定します。文字列の最後を指定する方法は、endという文字列を渡します。最後からx番目の文字と指定したい場合は、end-xcとします。たとえば、すべて消去したいときは、('0', 'end')
と書きます。
Text
の実装
複数行にわたってテキストボックスを実装するときに使います。
Text
の引数
引数の一部です。
width
: 幅を設定しますheight
: 行数を設定します
Text
のメソッド
get(first, last)
: 引数で与えられた分を含んで取得します。文字列の先頭を0として指定します。文字列の最後を指定する方法は、endという文字列を渡します。最後からx番目の文字と指定したい場合は、end-xcとします。たとえば、すべて取得したいけど、最後の改行コードはいらないときは、('0', 'end-1c')
と書きます。delete(first, last)
: 引数で与えられた分を含んで消去します。文字列の先頭を0として指定します。文字列の最後を指定する方法は、endという文字列を渡します。最後からx番目の文字と指定したい場合は、end-xcとします。たとえば、すべて消去したいときは、('0', 'end')
と書きます。
Button
の実装
Button
の引数
引数の一部です。
text
: 実際に表示される文字command
: クリックしたときの動作設定します。関数を指定する場合は()を消す必要があります。
Checkbutton
の実装
BooleanVar
を使います。これが True
だとチェックが入ります。
つまり、チェックボタンを実装するためには、BooleanVar
と Checkbutton
の2つの関数を呼び出す必要があります。
これは僕の環境だからダメなのかわからないのですが、checkButton だけを True にしても最初からチェックされた状態で表示されませんでした。 なぜか、ボタンと関連付けるようにプログラムを書くと、最初からチェックが入るようになります。 バグのような気もするのですが……。
Checkbutton
の引数
text
: 実際に表示される文字variable
: チェックされているかどうかを判定します。BooleanVar
オブジェクトを渡します。
BooleanVar
のメソッド
set()
: True か False しか受け付けませんget()
: 呼び出されたときのBooleanVar
オブジェクトの値を返します。
参考ホームページ
公式ドキュメント (http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/index.html)
紫藤のページ-On Python (http://www.shido.info/py/index.html)
How to get the input from the Tkinter Text Box Widget? (https://stackoverflow.com/questions/14824163/how-to-get-the-input-from-the-tkinter-text-box-widget)
PythonのTkinterを使ってみる (https://qiita.com/nnahito/items/ad1428a30738b3d93762)