tkinter
Ttkウィジェット
サーチ…
前書き
異なるttkウィジェットの例Ttkには合計17個のウィジェットがあり、そのうちの11個はすでにtkinter(tk)に存在していました。
ttkモジュールを使用すると、アプリケーションのモダンで改良された外観が得られます。
構文
- ツリー= ttk.Treeview(マスター、** kwargs)
パラメーター
パラメータ | 説明 |
---|---|
マスター | tkinterウィジェットはヒエラキーに存在します。ルートウィンドウを除いて、すべてのウィジェットには親(「マスター」とも呼ばれます)があります。ウィジェットがpack、placeまたはgridで画面に追加されると、このウィジェットがこの親ウィジェットの内側に表示されます |
備考
これらの例では、tkinter import tkinter as tk
(tminter)( import tkinter as tk
(3))またはimport Tkinter as tk
( import Tkinter as tk
(python 2))をimport tkinter as tk
てインポートしたと仮定しています。
また、ttkがtkinter from tkinter import ttk
(python 3)かimport ttk
(python 2)のどちらかfrom tkinter import ttk
されていると仮定します。
ツリービュー:基本的な例
このウィジェットは、階層を持つアイテムを表示するために使用されます。たとえば、Windowsエクスプローラはこのように再現できます。 treeview
ウィジェットを使って素敵なテーブルを作ることもできます。
ウィジェットを作成する
tree=ttk.Treeview(master)
列の定義
ユーザーがストレッチを行うときに、列の数、幅、最小幅を定義できます。 stretch=tk.NO
定義することで、ユーザーは列の幅を変更できません。
tree["columns"]=("one","two","three")
tree.column("#0", width=270, minwidth=270, stretch=tk.NO)
tree.column("one", width=150, minwidth=150, stretch=tk.NO)
tree.column("two", width=400, minwidth=200)
tree.column("three", width=80, minwidth=50, stretch=tk.NO)
見出しの定義
tree.heading("#0",text="Name",anchor=tk.W)
tree.heading("one", text="Date modified",anchor=tk.W)
tree.heading("two", text="Type",anchor=tk.W)
tree.heading("three", text="Size",anchor=tk.W)
いくつかの行を挿入する
# Level 1
folder1=tree.insert("", 1, "", text="Folder 1", values=("23-Jun-17 11:05","File folder",""))
tree.insert("", 2, "", text="text_file.txt", values=("23-Jun-17 11:25","TXT file","1 KB"))
# Level 2
tree.insert(folder1, "end", "", text="photo1.png", values=("23-Jun-17 11:28","PNG file","2.6 KB"))
tree.insert(folder1, "end", "", text="photo2.png", values=("23-Jun-17 11:29","PNG file","3.2 KB"))
tree.insert(folder1, "end", "", text="photo3.png", values=("23-Jun-17 11:30","PNG file","3.1 KB"))
パッキング
tree.pack(side=tk.TOP,fill=tk.X)
Windowsでは、この例から次のスクリーンショットを取得できます。
プログレスバー
ウィジェットttk.progress
は、ユーザがプログラムが実行されていることを知るために長い計算を扱う場合に便利です。次に、0.5秒ごとにプログレスバーを更新する例を示します。
プログレスバーを更新する機能
def progress(currentValue):
progressbar["value"]=currentValue
最大値を設定する
maxValue=100
プログレスバーを作成する
progressbar=ttk.Progressbar(master,orient="horizontal",length=300,mode="determinate")
progressbar.pack(side=tk.TOP)
プログレスバーがプログラムの制御下にある場合、「確定」モードが使用されます。
初期値と最大値
currentValue=0
progressbar["value"]=currentValue
progressbar["maximum"]=maxValue
0.5秒ごとに進化をエミュレートする
divisions=10
for i in range(divisions):
currentValue=currentValue+10
progressbar.after(500, progress(currentValue))
progressbar.update() # Force an update of the GUI
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow