2.Notebook
Notebook基本概念
Notebook也是一个Widget控件容器,这个控件的特点是有许多选项卡,当选择不同
选项卡时可以看到不同的子控件内容,也可以当作子窗口内容。
使用Notebook()构造方法的语法如下。
Notebook(父对象,options)
options参数如下:
(1)height:默认是使用最大可能高度,如果设置数值则使用设置高度。
(2)padding:设置Notebook外围的额外空间,可以设置4个数值代表left、top、
right、bottom四周的空间。
(3)width:默认是使用最大可能宽度,如果设置数值则使用设置宽度。
整个建立Notebook框架的步骤如下:
(1)使用Notebook()建立Notebook对象,假设对象名称是notebook。
(2)使用notebook对象调用add()方法。
add(子对象,text="xxx")
(3)上述代码可以将子对象插入notebook,同时产生"xxx"选项卡名称。
如果用正规语法表示add()方法,它的语法格式如下。
add(子对象,options)
options参数如下。
(1)compound:可以设置当选项卡内同时含图像和文字时,彼此之间的位置关系。
(2)image:选项卡以图像方式呈现。
(3)padding:可以设置Notebook和面板Pane的额外空间。
(4)state:可能值可能是normal、disabled、hidden、如果是disabled表示无法被选取使用,
如果是hidden表示被隐藏。
(5)sticky:指出子窗口面板的配置方式,n/s/e/w分别代表North、South、East、West。
(6)text:选项卡中的字符串内容。
(7)underline:从0开始计算的索引,指出第几个字母含下画线。
样例:建立简单Notebook的框架,这个程序中各选项卡中的子对象是Frame对象。
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="选项卡1")
notebook.add(frame2,text="选项卡2")
notebook.pack(padx=10,pady=10,fill=BOTH,expand=TRUE)
root.mainloop()
绑定选项卡与子控件内容
在选项卡1中增加内容是"Python"的标签子对象。
label=Label(frame1,···) #frame1是label的父对象
在选项卡2中增加名称是"Help"的功能按钮子对象。
btn=Button(frame2,···) #frame2是btn的父对象
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="选项卡1")
notebook.add(frame2,text="选项卡2")
notebook.pack(padx=10,pady=10,fill=BOTH,expand=TRUE)
root.mainloop()
其它类方法
Notebook.forget(tab_id)
移除指定的tab项
Notebook.hide(tab_id)
隐藏tab项,可以用add方法恢复显示
Notebook.select(tab_id)
激活指定tab项,如果入参为空,返回当前激活的tab项
Notebook.tab(tab_id)
返回tab项详细信息
Notebook.tabs()
返回含所有tab_id的列表