天天看點

魚c筆記——Python 的 GUI 程式設計(十四):Tkinter 的元件 PanedWindow

PanedWindow(窗格)元件(Tk8.4 新增是一個空間管理元件。跟 Frame 元件類似,都是為元件提供一個架構,不過 PanedWindow 允許讓使用者調整應用程式的空間劃分。

目錄

何時使用 PanedWindow 元件?

用法

參數

PanedWindow(master=None, **options)(class)

方法

add(child, **options)

forget(child)

identify(x, y)

panecget(child, option)

panecget(child, option)

paneconfig(child, **option)

何時使用 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()
           
魚c筆記——Python 的 GUI 程式設計(十四):Tkinter 的元件 PanedWindow
#建立一個三窗格
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()
           
魚c筆記——Python 的 GUI 程式設計(十四):Tkinter 的元件 PanedWindow
#顯示搖桿和分割線
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
           
魚c筆記——Python 的 GUI 程式設計(十四):Tkinter 的元件 PanedWindow

參數

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:指定子元件的高度

繼續閱讀