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