美文网首页
二十、容器Notebook

二十、容器Notebook

作者: 蝉时雨丶 | 来源:发表于2020-08-12 17:51 被阅读0次

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()
image.png

绑定选项卡与子控件内容

在选项卡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()
image.png

其它类方法

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的列表

相关文章

网友评论

      本文标题:二十、容器Notebook

      本文链接:https://www.haomeiwen.com/subject/szemdktx.html