魚c筆記——Python 的 GUI 程式設計(十四):Tkinter 的元件 PanedWindow
PanedWindow(窗格)元件(Tk8.4 新增是一個空間管理元件。跟 Frame 元件類似,都是為元件提供一個框架,不過 PanedWindow 允許讓使用者調整應用程式的空間劃分。
目錄
何時使用 PanedWindow 元件?
當你需要提供一個可供使用者調整的多空間框架的時候,可以使用 PanedWindow 元件。PanedWindow 元件會為每一個子元件生成一個獨立的窗格,使用者可以自由調整窗格的大小。
用法
from tkinter import * m = PanedWindow(orient=VERTICAL) m.pack(fill=BOTH, expand=1) top = Label(m, text='top pane') m.add(top) bottom = Label(m, text='bottom pane') m.add(bottom) #拖拽滑鼠的左鍵可以改變佈局 #中間有條隱藏的線,是二窗格 mainloop()
#建立一個三窗格 from tkinter import * m1 = PanedWindow() #預設是左右分佈的 m1.pack(fill=BOTH, expand=1) left = Label(m1, text='left pane') m1.add(left) m2 = PanedWindow(orient=VERTICAL) m1.add(m2) top = Label(m2, text='top pane') m2.add(top) bottom = Label(m2, text='bottom pane') m2.add(bottom) mainloop()
#顯示手柄和分割線 from tkinter import * m1 = PanedWindow(showhandle=True, sashrelief=SUNKEN) #預設是左右分佈的 m1.pack(fill=BOTH, expand=1) left = Label(m1, text='left pane') m1.add(left) m2 = PanedWindow(orient=VERTICAL, showhandle=True, sashrelief=SUNKEN) m1.add(m2) top = Label(m2, text='top pane') m2.add(top) bottom = Label(m2, text='bottom pane') m2.add(bottom) mainloop() #分割線上的類似正方形的東西就是handle
引數
PanedWindow(master=None, **options)(class)
master--父元件
**options--元件選項,下方詳細列舉了各個選項的具體含義和用法
選項 | 含義 |
---|---|
background | 設定背景顏色 |
bg | 跟background一樣 |
borderwidth | 設定邊框寬度 |
bd | 跟borderwidth一樣 |
cursor |
指定當滑鼠在PanedWindow上飄過的時候的滑鼠樣式 預設值由系統指定 |
handlepad |
調節“手柄”的位置 例如orient=VERTICAL,則handlepad選項表示“分割線”上的手柄與左端的距離 預設值是8畫素 |
handlesize |
設定“手柄”的尺寸(由於“手柄”必須是一個正方形,所以是設定正方形的邊長) 預設值是8畫素 |
height |
設定PanedWindow的高度 如果忽略該選項,則高度由子元件的尺寸決定 |
opaqueresize |
該選項定義了使用者調整窗格尺寸的操作 如果該選項的值為True(預設),窗格的尺寸隨使用者滑鼠的拖拽而改變 如果該選項的值為False,窗格的尺寸在使用者釋放滑鼠的時候才更新到新的位置 |
orient |
指定窗格的分佈方式 可以是HORIZONTAL(橫向分佈)和VERTICAL(縱向分佈) |
relief |
指定邊框樣式 預設值是FLAT 另外你還可以設定SUNKEN,RAISED,GROOVED或RIDGE |
sashpad | 設定每一條分割線到窗格間的間距 |
sashrelief |
設定分割線的樣式 預設值是FLAT 另外你還可以設定SUNKEN,RAISED,GROOVED或RIDGE |
sashwidth | 設定分割線的寬度 |
showhandle |
設定是否顯示調節窗格的手柄 預設值為False |
width |
設定PanedWindow的寬度 如果忽略該選項,則高度由子元件的尺寸決定 |
方法
add(child, **options)
--新增一個新的子元件到窗格中
--下方表格列舉了各個 options 選項的具體含義
選項 | 含義 |
---|---|
after | 新增新的子元件到指定子元件後邊 |
before | 新增新的子元件到指定子元件前邊 |
height | 指定子元件的高度 |
minsize |
該選項控制窗格不得低於的值 如果orient=HORIZONTAL,表示窗格的寬度不得低於該選項的值 如果orient=VERTICAL,表示窗格的高度不得低於該選項的值 |
padx | 指定子元件的水平間距 |
pady | 指定子元件的垂直間距 |
sticky |
當窗格的尺寸大於子元件時,該選項指定子元件位於窗格的位置 可選的值有:E、S、W、N(東南西北)以及他們的組合值 |
width | 指定子元件的寬度 |
forget(child)
--刪除一個子元件
identify(x, y)
--給定一個座標 (x, y),返回該座標所在的元素名稱
--如果該座標位於子元件上,返回空字串
--如果該座標位於分割線上,返回一個二元組 (n, 'sash'),n 為 0 表示第一個分割線
--如果該座標位於手柄上,返回一個二元組 (n, 'handle'),n 為 0 表示第一個手柄
panecget(child, option)
--獲得子元件指定選項的值
panecget(child, option)
--獲得子元件指定選項的值
paneconfig(child, **option)
--設定子元件的各種選項
--下面列舉了各個 options 選項具體含義
after:新增新的子元件到指定子元件後邊
before:新增新的子元件到指定子元件前邊
height:指定子元件的高度