二十、容器Notebook

2.Notebook

Notebook基本概念

Notebook也是一個(gè)Widget控件容器,這個(gè)控件的特點(diǎn)是有許多選項(xiàng)卡,當(dāng)選擇不同
選項(xiàng)卡時(shí)可以看到不同的子控件內(nèi)容,也可以當(dāng)作子窗口內(nèi)容。

使用Notebook()構(gòu)造方法的語法如下。
Notebook(父對(duì)象,options)

options參數(shù)如下:
(1)height:默認(rèn)是使用最大可能高度,如果設(shè)置數(shù)值則使用設(shè)置高度。
(2)padding:設(shè)置Notebook外圍的額外空間,可以設(shè)置4個(gè)數(shù)值代表left、top、
right、bottom四周的空間。
(3)width:默認(rèn)是使用最大可能寬度,如果設(shè)置數(shù)值則使用設(shè)置寬度。

整個(gè)建立Notebook框架的步驟如下:
(1)使用Notebook()建立Notebook對(duì)象,假設(shè)對(duì)象名稱是notebook。
(2)使用notebook對(duì)象調(diào)用add()方法。

add(子對(duì)象,text="xxx")
(3)上述代碼可以將子對(duì)象插入notebook,同時(shí)產(chǎn)生"xxx"選項(xiàng)卡名稱。
如果用正規(guī)語法表示add()方法,它的語法格式如下。
add(子對(duì)象,options)

options參數(shù)如下。
(1)compound:可以設(shè)置當(dāng)選項(xiàng)卡內(nèi)同時(shí)含圖像和文字時(shí),彼此之間的位置關(guān)系。
(2)image:選項(xiàng)卡以圖像方式呈現(xiàn)。
(3)padding:可以設(shè)置Notebook和面板Pane的額外空間。
(4)state:可能值可能是normal、disabled、hidden、如果是disabled表示無法被選取使用,
如果是hidden表示被隱藏。
(5)sticky:指出子窗口面板的配置方式,n/s/e/w分別代表North、South、East、West。
(6)text:選項(xiàng)卡中的字符串內(nèi)容。
(7)underline:從0開始計(jì)算的索引,指出第幾個(gè)字母含下畫線。

樣例:建立簡單Notebook的框架,這個(gè)程序中各選項(xiàng)卡中的子對(duì)象是Frame對(duì)象。

from tkinter import *
from tkinter.ttk import *

root=Tk()
root.title("ch14_6")
root.geometry("300x160")

notebook=Notebook(root)

frame1=Frame()
frame2=Frame()

notebook.add(frame1,text="選項(xiàng)卡1")
notebook.add(frame2,text="選項(xiàng)卡2")
notebook.pack(padx=10,pady=10,fill=BOTH,expand=TRUE)

root.mainloop()
image.png

綁定選項(xiàng)卡與子控件內(nèi)容

在選項(xiàng)卡1中增加內(nèi)容是"Python"的標(biāo)簽子對(duì)象。
label=Label(frame1,···) #frame1是label的父對(duì)象

在選項(xiàng)卡2中增加名稱是"Help"的功能按鈕子對(duì)象。
btn=Button(frame2,···) #frame2是btn的父對(duì)象

from tkinter import *
from tkinter import messagebox
from tkinter.ttk import *
def msg():
    messagebox.showinfo("Notebook","歡迎使用Notebook")

root=Tk()
root.title("ch14_6")
root.geometry("300x160")

notebook=Notebook(root)

frame1=Frame()
frame2=Frame()

label=Label(frame1,text="Python")
label.pack(padx=10,pady=10)

btn=Button(frame2,text="Help",command=msg)
btn.pack(padx=10,pady=10)

notebook.add(frame1,text="選項(xiàng)卡1")
notebook.add(frame2,text="選項(xiàng)卡2")
notebook.pack(padx=10,pady=10,fill=BOTH,expand=TRUE)

root.mainloop()
image.png

其它類方法

Notebook.forget(tab_id)
移除指定的tab項(xiàng)

Notebook.hide(tab_id)
隱藏tab項(xiàng),可以用add方法恢復(fù)顯示

Notebook.select(tab_id)
激活指定tab項(xiàng),如果入?yún)榭眨祷禺?dāng)前激活的tab項(xiàng)

Notebook.tab(tab_id)
返回tab項(xiàng)詳細(xì)信息

Notebook.tabs()
返回含所有tab_id的列表

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容