LogoMark.png

Python/Tkinter の変更点


#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( )を呼ぶことでウィンドウが表示されます。

~
~