- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2021-12-14T23:06:18+09:00","default:inoue.ko","inoue.ko")
#author("2023-09-04T12:04:29+09:00;2021-12-14T23:06:18+09:00","default:inoue.ko","inoue.ko")
*Tkinter
https://docs.python.org/ja/3/library/tkinter.html
~
Tkinter は Tk を Python から「Tcl/Tk」を扱うために標準で用意されているGUIライブラリです。Python の GUI ツールキットとしてはデファクトスタンダードと言えます。Python3 では 頭文字の「T」が小文字で、tkinter と記載します。
-Tcl(ティクル):シンプルな構造をしているスクリプト言語
-Tk(ティーケー):TclでGUIを開発するためのツールキット
~
~
**環境の確認
#image(tkinter_test.png,right,40%)
tkinter は Pythonに標準で付属されているので、import して使えます。以下のように対話入力すると、右図のようなポップアップウインドウが表示されます。
tkinter は Pythonに標準で付属されているので、import して使えます。IDLEのPythonシェル(あるいは [[Terminal]] の Pythonシェルで)で、以下のように入力すると、右図のようなポップアップウインドウが表示されます。
>>> import tkinter
>>> tkinter._test()
~
~
**サンプルプログラム
tkinter ではUI コンポーネント (「ウィジェット」) をツリー状の階層構造を構成するように作成します。
''sample.py''
# ライブラリのインポート
from tkinter import *
from tkinter import ttk
# root要素(ウインドウ)の準備
root = Tk()
root.title('Tkinter Sample')
# ウィジェットの作成
frame = ttk.Frame( root, padding = 16)
label = ttk.Label( frame, text = 'YourName')
t = StringVar()
entry = ttk.Entry( frame, textvariable = t)
button = ttk.Button( frame, text = 'OK',
command = lambda: print('Hello!, %s.' % t.get()) )
# ウィジェットの配置
frame.pack( )
label.pack( side = LEFT )
entry.pack( side = LEFT )
button.pack( side = LEFT )
# メインループ
root.mainloop( )
~
***実行の様子
-コンソールから sample.py を実行
-IDLE や PyCharm で「RUN(実行)」します。
--Terminal の場合は、カレントディレクトリで sample.py を実行
% python3 sample.py
-ウインドウが表示されるので、テキストボックスに入力
#image(tkinter_sample.png,,70%)
-コンソールに 入力内容が反映されます。
-開発環境のPythonコンソールに入力内容が反映されます。
Hello!, John Smith.
~
***プログラムの解説
-以下の記述で root要素(ウインドウ)が準備されます。
root = Tk()
-Frame を親要素として Label("YourName") 、Entry(テキストボックス)、 Button("OK")を作成しています。
-このサンプルでは、テキストボックスに文字列を入力してOKすると、print() 関数によってコンソールに文字列を表示します。
-pack( ) メソッドによって、親要素の中に子ウィジェットが追加されます。
-mainloop( )を呼ぶことでウィンドウが表示されます。
~
~