Python之tkinter 多选项卡 Notebook

Notebook 基本概念

  Notebook 是一个Widget 容器控件,这个控件的特点就是有许多选项卡,当选择不同选项卡时可以看到不同的子控件内容,也可以当做子窗口内容,Notebook 是属于tkinter.ttk模块的控件

构造方法如下:

Notebook(父对象, options)

参数:

  • 第一个参数:父对象,表示这个选项卡将建立在哪一个窗口内
  • 第二个参数:options,参数如下
参数含义
height如果设置数值则使用设置高度
默认是使用最大可能高度
padding设置Notebook外围的额外空间,可以设置4个数值代表left、top、tight、bottom四周的空间
width如果设置数值则使用设置宽度
默认是使用最大可能宽度

整个建立Notebook框架的步骤:

  • Notebook()建立Notebook对象,假设对象名称是notebook
  • 使用notebook对象调用add()方法
    • add(子对象, text='xxx')
    • xxx是要添加的选项卡名称
  • 上述代码可以将子对象插入notebook,同时产生’xxx’选项卡名称

如果用正规语法表示add()方法,它的语法格式如下

add(子对象, options)

options参数如下:

参数含义
compound可以设置当选项卡内同时含图像和文字时,彼此之间的位置关系
image选项卡以图像方式呈现
padding设置Notebook和面板Pane的额外空间
state可能值是normal、disabled、hidden
如果是disabled表示无法被选取使用
如果是hidden表示被隐藏
sticky指出子窗口面板的配置方式,n/s/e/w分别表示North、South、East、West
text选项卡中的字符串内容
underline指出第几个字母含下划线
从0开始计算的索引
Notebook 基本应用

例子

import tkinter
import tkinter.ttk
root = tkinter.Tk()
root.geometry('300x180')

notebook = tkinter.ttk.Notebook(root)

frameOne = tkinter.Frame()
frameTwo = tkinter.Frame()

notebook.add(frameOne, text='选项卡1')
notebook.add(frameTwo, text='选项卡2')
notebook.pack(padx=10, pady=5, fill=tkinter.BOTH, expand=True)

root.mainloop()

运行结果:
在这里插入图片描述

绑定选项卡与子控件内容

例子

import tkinter
import tkinter.ttk
root = tkinter.Tk()
root.geometry('150x120')

def show():
    labelOther.config(text='Tkinter')
    labelOther.config(bg='lightgreen')

notebook = tkinter.ttk.Notebook(root)

frameOne = tkinter.Frame()
frameTwo = tkinter.Frame()

# 添加内容
label = tkinter.Label(frameOne, text='Python', bg='lightblue', fg='red')
label.pack(padx=10, pady=5)

button = tkinter.Button(frameTwo, text='请点击', command=show)
button.pack(padx=10, pady=5)

labelOther = tkinter.Label(frameTwo, fg='red')
labelOther.pack(padx=10, pady=5)

notebook.add(frameOne, text='选项卡1')
notebook.add(frameTwo, text='选项卡2')
notebook.pack(padx=10, pady=5, fill=tkinter.BOTH, expand=True)

root.mainloop()

运行结果:
在这里插入图片描述

谢谢观看,笔者会持续更新,如有错误或者建议,请私信我

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值