美文网首页
二十、容器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