tkinter高級布局之PanedWindow和notebook詳解
tkinter傳統(tǒng)的布局工具就是Frame,頂多算上LabelFrame,然后運用place, grid和pack,來排滿一張窗口,其他的就沒有了。接下來要介紹的兩種布局控件,或者說是容器比較恰當,分別是可以動態(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中,除了設置寬高的height, width,背景色bg,邊框寬度bd,鼠標樣式cursor,邊框樣式relief這些通用參數外,主要參數如下
| 參數 | |
|---|---|
| showhandle | 為True時顯示方形手柄 |
| handlepad | 手柄位置,默認8像素 |
| handlesize | 手柄邊長,默認8像素 |
| opaqueresize | 默認為True,窗格的尺寸隨用戶鼠標的拖拽而實時變化;如設為False,則只有在松開鼠標后,窗格尺寸才發(fā)生變化。 |
| orient | 窗格分布方式,可選 horizontal(橫向)和 vertical(縱向) |
| sashpad | 設置每一條分割線到窗格間的間距 |
| sashrelief | 分割線樣式,默認"flat",可選"sunken",“raised”,“groove” 或 “ridge” |
| sashwidth | 設置分割線的寬度 |
notebook
選項卡也是非常實用的布局利器,有了這個,可以讓窗口可以插入更多的內容,簡單示例如下
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函數可以添加新的選項卡,除了待添加控件之外,其主要參數如下
| 參數 | |
|---|---|
| text | 選項卡中標題 |
| compound | 當選項卡內同時含圖像和文字時,彼此之間的位置關系 |
| image | 選項卡以圖像方式呈現 |
| padding | 內邊距 |
| state | 選項卡狀態(tài),可選normal、disabled、hidden |
| sticky | 指出子窗口面板的配置方式,可選nsew,表示南北東西 |
| underline | 指出第幾個字母含下劃線,從0開始計算的索引 |
到此這篇關于tkinter高級布局之PanedWindow和notebook詳解的文章就介紹到這了,更多相關tkinter布局內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Anaconda+Pycharm+Pytorch虛擬環(huán)境創(chuàng)建(各種包安裝保姆級教學)
相信很多時候大家都會用到虛擬環(huán)境,他具有可以讓你快速切換不同的python版本,本文主要介紹了Anaconda+Pycharm+Pytorch虛擬環(huán)境創(chuàng)建,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-10-10
在python下使用tensorflow判斷是否存在文件夾的實例
今天小編就為大家分享一篇在python下使用tensorflow判斷是否存在文件夾的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06

