使用 Python-Tkinter 创建选项卡控件

Python 提供了一系列 GUI 框架,我们可以用它们来开发基于图形用户界面的应用程序。其中最广泛使用的 Python 接口是 Tk 接口,或者称为 tkinter(在 Python 3.x 中重命名)。与其他 Python 提供的接口相比,Tkinter 模块提供了广泛的部件(widgets),能让我们更快、更轻松地开发 GUI 应用程序。

tkinter.ttk 模块是对现有 tk 模块的改进。Ttk 模块配备了 18 个部件,其中 12 个已经存在于 Tkinter 模块中,例如 Button、Checkbutton、PanedWindow、Radiobutton、Entry、Frame、Label、LabelFrame、Menubutton、Scale、Scrollbar 和 Spinbox。新加入的部件包括 Combobox、Notebook、Sizegrip、Progressbar、Separator 和 Treeview。

在本文中,我们将使用 ttk 模块的 Notebook 部件来创建一个选项卡控件。ttk.Notebook 部件管理一组窗口,并且一次只显示一个。每个子窗口都对应一个选项卡。用户一次只能选择一个选项卡来查看窗口的内容。

下面是我们创建 tkinter 选项卡控件的步骤:

1. 导入 tkinter 模块

import tkinter as tk
from tkinter import *

注意: 在 Python 2.x 中模块名称是 ‘Tkinter’,而在 Python 3.x 中是 ‘tkinter’。本文使用的是 Python 3.x。

2. 导入包含 Notebook 部件的 tkinter.ttk 模块

from tkinter import ttk

3. 创建父窗口 (root)

root = tk.Tk()

语法:

Tk()

解释:

用于创建主窗口。在这里,Tk 类在实例化时不带任何参数。

4. 为父窗口 (root) 添加标题

root.title("Tab Widget")

语法:

title(name)

参数:
name: 用于将我们想要的名称传递给父窗口 (root)。

5. 创建选项卡控制器

tabControl = ttk.Notebook(root)

语法:

Notebook(master=None, **options)

参数:

  • master: 父窗口 (root)。
  • options: Notebook() 方法接受的选项有 height、padding 和 width。本程序中未使用这些选项。

6. 创建选项卡

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

语法:

Frame(master=None, **options)

参数:

  • master: tabControl 是选项卡的父部件。
  • options: Frame() 方法接受的选项有 class_、cursor、padding、relief、style、takefocus、height 和 width。本程序中未使用这些选项。

解释:

Frame 部件就像一个容器,用于将其他部件分组在一起。在这里,Frame 部件用于将选项卡部件分组在一起。

7. 添加选项卡

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

语法:

add(child, **options)

参数:

  • child: tab1 和 tab2 是 tabControl 的子部件。
  • options: add() 方法支持的选项有 sticky、state、padding、text、image、compound、underline。

解释:

add() 方法存在于 tk.ttk.Notebook 类中。它用于向 Notebook 部件添加新的选项卡。

8. 打包选项卡控制器以使选项卡可见

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

语法:

pack(**options)

参数:

  • expand: expand 选项确保当父部件扩展时,在具有非零 expand 值的部件之间平均分配空间。
  • fill: fill 选项确保部件占据分配给它的空间。fill="both" 指定部件沿 X 轴和 Y 轴占据空间;fill="X" 指定部件沿 X 轴占据空间;fill="Y" 指定部件沿 Y 轴占据空间。

解释:

pack() 方法用于在将部件放入父部件之前,按块组织它们。这可以使用 fill、expand 和 side 等各种选项来完成。

9. 创建 Label 部件作为父窗口 (root) 的子部件

> ttk.Label(tab1, text="Welcome to GeeksForGeeks").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)

语法:

Label(master, **options)

参数:

  • master: 选项卡作为 Label 部件的父级。
  • options: Label() 方法支持的选项有 anchor、bg、bitmap、bd、cursor、font、fg、height、width、image、justify、relief、padx、pady、textvariable、underline 和 wraplength。

解释:

Label 部件用于在屏幕上显示文本或图像。我们可以使用 Label 部件中的各种选项进一步格式化屏幕上显示的文本。

语法:

grid(**options)

参数:

  • options: grid() 方法支持的选项有 column、columnspan、row、rowspan、padx、pady、ipadx、ipady 和 sticky。

解释:

g

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/43826.html
点赞
0.00 平均评分 (0% 分数) - 0