サーチ…


前書き

異なる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 tkimport 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では、この例から次のスクリーンショットを取得できます。

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