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

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