tkinter高級布局之PanedWindow和notebook詳解
tkinter傳統(tǒng)的布局工具就是Frame,頂多算上LabelFrame,然后運用place, grid和pack,來排滿一張窗口,其他的就沒有了。接下來要介紹的兩種布局控件,或者說是容器比較恰當(dāng),分別是可以動態(tài)劃分子控件的PanedWindow,和提供了選項卡工具的otebook,其中后者只存在于tkinter.ttk中。
PanedWindow
PanedWindow可以理解為是更加高級的窗口或者Frame,在PanedWindow中,其子控件可以自由拖動邊框。這個控件在tkinter和tkinter.ttk中都有,下面用ttk為示例
import tkinter as tk import tkinter.ttk as ttk pw = ttk.PanedWindow(orient='horizontal') pw.pack(fill="both", expand=1) pw.add(ttk.LabelFrame(pw, text="left")) pw.add(ttk.LabelFrame(pw, text="right")) tk.mainloop()
效果如下
在PaneWindow中,除了設(shè)置寬高的height, width,背景色bg,邊框?qū)挾萣d,鼠標(biāo)樣式cursor,邊框樣式relief這些通用參數(shù)外,主要參數(shù)如下
參數(shù) | |
---|---|
showhandle | 為True時顯示方形手柄 |
handlepad | 手柄位置,默認(rèn)8像素 |
handlesize | 手柄邊長,默認(rèn)8像素 |
opaqueresize | 默認(rèn)為True,窗格的尺寸隨用戶鼠標(biāo)的拖拽而實時變化;如設(shè)為False,則只有在松開鼠標(biāo)后,窗格尺寸才發(fā)生變化。 |
orient | 窗格分布方式,可選 horizontal(橫向)和 vertical(縱向) |
sashpad | 設(shè)置每一條分割線到窗格間的間距 |
sashrelief | 分割線樣式,默認(rèn)"flat",可選"sunken",“raised”,“groove” 或 “ridge” |
sashwidth | 設(shè)置分割線的寬度 |
notebook
選項卡也是非常實用的布局利器,有了這個,可以讓窗口可以插入更多的內(nèi)容,簡單示例如下
nt = ttk.Notebook() lf1 = ttk.LabelFrame(nt, text="選項卡1", labelanchor='n') nt.add(lf1, text='選項卡1') lf2 = ttk.LabelFrame(nt, text="選項卡2", labelanchor='n') nt.add(lf2, text='選項卡2') nt.pack(fill=tk.BOTH, expand=True) tk.mainloop()
效果如下
其中add函數(shù)可以添加新的選項卡,除了待添加控件之外,其主要參數(shù)如下
參數(shù) | |
---|---|
text | 選項卡中標(biāo)題 |
compound | 當(dāng)選項卡內(nèi)同時含圖像和文字時,彼此之間的位置關(guān)系 |
image | 選項卡以圖像方式呈現(xiàn) |
padding | 內(nèi)邊距 |
state | 選項卡狀態(tài),可選normal、disabled、hidden |
sticky | 指出子窗口面板的配置方式,可選nsew,表示南北東西 |
underline | 指出第幾個字母含下劃線,從0開始計算的索引 |
到此這篇關(guān)于tkinter高級布局之PanedWindow和notebook詳解的文章就介紹到這了,更多相關(guān)tkinter布局內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python timestamp和datetime之間轉(zhuǎn)換詳解
這篇文章主要為大家詳細(xì)介紹了python timestamp和datetime之間轉(zhuǎn)換,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-12-12利用Pycharm + Django搭建一個簡單Python Web項目的步驟
這篇文章主要介紹了利用Pycharm + Django搭建一個簡單Python Web項目的步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10關(guān)于numpy.where()函數(shù) 返回值的解釋
今天小編就為大家分享一篇關(guān)于numpy.where()函數(shù) 返回值的解釋,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12Python中的異常處理相關(guān)語句基礎(chǔ)學(xué)習(xí)筆記
這里我們簡單整理一下Python中的異常處理相關(guān)語句基礎(chǔ)學(xué)習(xí)筆記,包括try...except與assert等基本語句的用法講解:2016-07-07python實現(xiàn)RabbitMQ的消息隊列的示例代碼
這篇文章主要介紹了python實現(xiàn)RabbitMQ的消息隊列的示例代碼,總結(jié)了RabbitMQ中三種exchange模式的實現(xiàn),分別是fanout, direct和topic。感興趣的小伙伴們可以參考一下2018-11-11pytorch快速搭建神經(jīng)網(wǎng)絡(luò)_Sequential操作
這篇文章主要介紹了pytorch快速搭建神經(jīng)網(wǎng)絡(luò)_Sequential操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06