LabelFrame 標籤框架
LabelFrame 類似 Frame,也是 tkinter 裡可以用來放置其他元件的「框架」,比較不同的是,LabelFrame 預設會將放入的元件外面,加上一個標題,讓這些元件變成類似「群組」的概念,這篇教學會介紹如何在 tkinter 視窗裡加入 LabelFrame 標籤框架。
快速導覽:
因為 Google Colab 不支援 tkinter,所以請使用本機環境 ( 參考:使用 Python 虛擬環境 ) 或使用 Anaconda Jupyter 進行實作 ( 參考:使用 Anaconda )。
加入 LabelFrame 標籤框架
建立 tkinter 視窗物件後,透過 LabelFrame 方法,就能在視窗物件中建立 LabelFrame 框架,必要的參數有兩個,表示要加入的視窗物件,以及要顯示的標題文字,建立 Frame 框架後再使用 pack() 方法將其加入 ( 參考 pack 參數設定 ),下方的程式碼執行後,除了會加入一個 LabelFrame,還會在 Frame 中加入三個 Label ( 位置、大小和顏色都使用預設值 )。
import tkinter as tk
root = tk.Tk()
root.title('oxxo.studio')
root.geometry('200x200')
group = tk.LabelFrame(root, text='test', padx=10, pady=10)
group.pack()
a = tk.Label(group, text='AAA').pack()
b = tk.Label(group, text='BBB').pack()
c = tk.Label(group, text='CCC').pack()
root.mainloop()
LabelFrame 標籤框架參數設定
加入 LabelFrame 之後,可以透過 LabelFrame 的參數調整內容的樣式:
參數 | 說明 |
---|---|
padx | 內容和標籤左右邊界的間距 ( px ),預設 1。 |
pady | 內容和標籤上下邊界的間距 ( px ),預設 1。 |
bg/background | 背景顏色,可以使用十六進位色碼或顏色名稱。 |
cursor | 滑鼠移動到標籤的樣式,可以設定 arrow、circle、cross、plus...等,預設 arrow。 |
relief | 邊框樣式,可以設定 flat、sunken、raised、groove、ridge、solid,預設 flat。 |
bd/borderwidth | 邊框粗細,預設 1。 |
搭配 gird() 進行變化
LabelFrame 類似於將內容的元件組合成一個大的元件,如果搭配 grid() 方法 ( 參考「Grid 格狀版面佈局」 ),就能做出更多樣的版面變化。
import tkinter as tk
root = tk.Tk()
root.title('oxxo.studio')
root.geometry('200x200')
g1 = tk.LabelFrame(root, text='G1', padx=10, pady=10, background='#0c9')
g1.grid(column=0, row=0, ipadx=10, ipady=10) # 使用 grid() 放置
a = tk.Label(g1, text='AAA').pack()
b = tk.Label(g1, text='BBB').pack()
c = tk.Label(g1, text='CCC').pack()
g2 = tk.LabelFrame(root, text='G2', padx=10, pady=10, background='#f90')
g2.grid(column=1, row=0, ipadx=10, ipady=10) # 使用 grid() 放置
x = tk.Label(g2, text='XXX').pack()
y = tk.Label(g2, text='YYY').pack()
z = tk.Label(g2, text='ZZZ').pack()
root.mainloop()
意見回饋
如果有任何建議或問題,可傳送「意見表單」給我,謝謝~