#author("2023-09-04T12:03:52+09:00;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 して使えます。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( ) ~ ***実行の様子 -IDLE や PyCharm で「RUN(実行)」します。 --Terminal の場合は、カレントディレクトリで sample.py を実行 % python3 sample.py -ウインドウが表示されるので、テキストボックスに入力 #image(tkinter_sample.png,,70%) -例えば、"John Smith" と入力します。 -開発環境のPythonコンソールに入力内容が反映されます。 Hello!, John Smith. ~ ***プログラムの解説 -以下の記述で root要素(ウインドウ)が準備されます。 root = Tk() -Frame を親要素として Label("YourName") 、Entry(テキストボックス)、 Button("OK")を作成しています。 -このサンプルでは、テキストボックスに文字列を入力してOKすると、print() 関数によってコンソールに文字列を表示します。 -pack( ) メソッドによって、親要素の中に子ウィジェットが追加されます。 -mainloop( )を呼ぶことでウィンドウが表示されます。 ~ ~