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()

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

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

发布了46 篇原创文章 · 获赞 54 · 访问量 5969
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 数字20 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览