使用Python-Tkinter创建选项卡式小部件

2021年5月11日14:36:34 发表评论 1,963 次浏览

Python提供了一系列GUI框架, 可用于在Python中开发基于GUI的应用程序。使用最广泛的Python接口是Tk接口或

Tkinter

(在Python 3.x中重命名)。与Python提供的其他界面相比, Tkinter模块提供了广泛的小部件, 可用于更快, 更轻松地开发GUI应用程序。 tkinter.ttk模块是对现有tk模块的改进。 Ttk模块配备了18个小部件, 其中Tkinter模块中存在12个小部件, 例如Button, Checkbutton, PanedWindow, Radiobutton, Entry, Frame, Label, LabelFrame, Menubutton, Scale, Scrollbar和Spinbox。新添加的小部件是Combobox, Notebook, Sizegrip, Progressbar, Separator和Treeview。在本文中, 使用ttk模块的Notebook小部件来创建选项卡式小部件。 ttk.Notebook小部件管理一组窗口并一次显示一个窗口。每个子窗口都与一个选项卡关联。用户可以一次选择一个选项卡来查看窗口的内容。

创建tkinter选项卡式窗口小部件的步骤:

导入tkinter模块将tkinter从tkinter import导入为tk *注意:在Python 2.x中, 模块的名称为" Tkinter", 在Python 3.x中, 模块的名称为" tkinter"。这里使用Python3.x。

导入tkinter ttk模块, 其中包含来自tkinter的Notebook小部件导入ttk

创建父窗口(根)。

root = tk.Tk()

语法如下:

Tk()

说明:

用于创建父窗口。实例化Tk类, 不带任何参数(此处)。

将标题添加到父窗口(根)。

root.title("Tab Widget")

语法如下:

title(name)

参数:

名称:

用于将所需的名称传递到父窗口(根)。

创建标签控件

tabControl = ttk.Notebook(root)

语法如下:

Notebook(master=None, **options)

参数:

  • 主:父窗口(根)。
  • 选项:Notebook()方法接受的选项是height, padding和width。该程序未使用选项。

创建标签

tab1 = ttk.Frame(tabControl)
tab2 = ttk.Frame(tabControl)

语法如下:

Frame(master=None, **options)

参数:

  • 主:tabControl是选项卡的父窗口小部件。
  • 选项:Frame()方法接受的选项是class_, 光标, 填充, 浮雕, 样式, takefocus, 高度和宽度。该程序未使用选项。

说明:

框架小部件的作用类似于容器, 用于将其他小部件分组在一起。此处, "框架"窗口小部件用于将选项卡窗口小部件分组在一起。

添加标签

tabControl.add(tab1, text='Tab 1')
tabControl.add(tab2, text='Tab 2')

语法如下:

add(child, **options)

参数:

  • 儿童:tab1和tab2是tabControl的子窗口小部件。
  • 选项:add()方法支持的选项包括粘滞, 状态, 填充, 文本, 图像, 复合, 下划线。

说明:

add()方法位于tk.ttk.Notebook类中。用于将新选项卡添加到Notebook小部件。

包装标签控件以使标签可见

tabControl.pack(expand=1, fill="both")

语法如下:

pack(**options)

参数:

  • 扩大:扩展选项可确保在扩展父窗口小部件时, 具有非零扩展值的窗口小部件之间的空间分布均匀。
  • 填:fill选项确保小部件占用分配给它的空间。现在fill =" both"指定小部件在X和Y轴上都占据空间, fill ="" X"指定小部件在X轴上占据空间, 而fill ="" Y"指定小部件在Y轴上占据空间。轴。

说明:

pack()方法用于将小部件组织成块, 然后再将其放置在父小部件中。可以使用各种选项(例如填充, 展开和填充)来完成。

将Label小部件创建为父窗口(根)的子级

ttk.Label(tab1, text =" Welcome to lsbin")。grid(column = 0, row = 0, padx = 30, pady = 30)ttk.Label(tab2, text ="让我们深入计算机世界" ).grid(列= 0, 行= 0, padx = 30, pady = 30)

语法如下:

Label(master, **options)

参数:

  • 主:这些选项卡充当Label小部件的父级。
  • 选项:Label()方法支持的选项是锚, bg, 位图, bd, 光标, 字体, fg, 高度, 宽度, 图像, 对齐, 浮雕, padx, pady, textvariable, 下划线和换行符。

说明:

标签窗口小部件用于在屏幕上显示文本或图像。可以使用标签窗口小部件中提供的各种选项来进一步格式化屏幕上显示的文本。

语法如下:

grid(**options)

参数:

  • 选项:grid()方法支持的选项是列, 列跨度, 行, 行跨度, padx, pady, ipadx, ipady和sticky。

说明:

grid()方法用于将父窗口小部件拆分为行和列, 尤其是2D表。它可以用来指定小部件在父小部件中的位置。在这里grid()方法指定Label小部件的位置, 即。基本上是文本在父窗口中的位置。

运行应用程序

root.mainloop()

语法如下:

mainloop()

说明:

mainloop()就像一个无限循环, 用于运行应用程序。

完整的程序如下:

import tkinter as tk                    
from tkinter import ttk
  
  
root = tk.Tk()
root.title( "Tab Widget" )
tabControl = ttk.Notebook(root)
  
tab1 = ttk.Frame(tabControl)
tab2 = ttk.Frame(tabControl)
  
tabControl.add(tab1, text = 'Tab 1' )
tabControl.add(tab2, text = 'Tab 2' )
tabControl.pack(expand = 1 , fill = "both" )
  
ttk.Label(tab1, text = "Welcome to \
           lsbin").grid(column = 0 , row = 0 , padx = 30 , pady = 30 )  
ttk.Label(tab2, text = "Lets dive into the\
           world of computers").grid(column = 0 , row = 0 , padx = 30 , pady = 30 )
  
root.mainloop()

输出如下

python-tkinter
python-tkinter

首先, 你的面试准备可通过以下方式增强你的数据结构概念:Python DS课程。


木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: