tkinter notebook多选项卡案例实操

tkinter notebook多选项卡案例实操

tkinter notebook多选项卡案例实操

简介

图形用户界面(GUI)是现代软件应用程序中常见的一种界面形式,它使用图形和图标替代了传统的命令行界面。在Python中,有多种GUI库可供选择,其中tkinter是其中最流行和常用的一个。tkinter提供了丰富的工具和类,用于创建各种GUI组件,从简单的按钮到复杂的窗口布局。

其中,Notebook(或称为多选项卡)是tkinter中非常有用的一个组件,它可以将多个页面组织在一个单独的容器中,用户可以通过点击选项卡来切换页面。本文将以一个实际案例来详解如何使用tkinter中的Notebook来实现多选项卡功能。

准备工作

在开始之前,我们需要确保已经安装了tkinter库。如果你使用的是Python 3.x版本,tkinter库已经默认安装。如果是Python 2.x版本,可以使用以下命令来安装:

pip install tkinter

实例演示

我们将通过一个简单的ToDo List应用程序来演示如何使用tkinter中的Notebook组件。

1. 导入所需的库

首先,我们需要导入tkinter库和Notebook组件。

from tkinter import *
from tkinter import ttk # 导入ttk,对应的Notebook就是在这个ttk下

2. 创建主窗口

接下来,我们创建一个主窗口,并指定其标题和初始大小。

root = Tk()
root.title("ToDo List")
root.geometry("400x300")

3. 创建Notebook组件

使用ttk.Notebook类来创建一个Notebook组件。

notebook = ttk.Notebook(root)
notebook.pack(fill="both", expand=True)

Notebook组件需要放置在一个容器中,我们使用pack方法将其放置在主窗口中。fill="both"表示Notebook组件将填充整个可用空间,expand=True表示Notebook组件将根据窗口的大小自动扩展。

4. 创建选项卡

我们可以使用add方法来向Notebook组件中添加选项卡。在本例中,我们创建两个选项卡,分别用于显示待办事项和已完成事项。

todo_tab = Frame(notebook)
done_tab = Frame(notebook)

notebook.add(todo_tab, text="待办事项")
notebook.add(done_tab, text="已完成事项")

Frame类用于创建一个容器,我们将其作为选项卡的内容。text参数用于指定选项卡的标题。

5. 创建待办事项页面内容

在待办事项选项卡中,我们将添加一个文本框和一个按钮,用于输入待办事项和将其添加到列表中。

todo_entry = Entry(todo_tab)
todo_entry.pack(pady=10)

todo_listbox = Listbox(todo_tab)
todo_listbox.pack(fill=BOTH, expand=True)

def add_todo():
    todo = todo_entry.get()
    if todo:
        todo_listbox.insert(END, todo)
        todo_entry.delete(0, END)

add_button = Button(todo_tab, text="添加", command=add_todo)
add_button.pack(pady=10)

上述代码中,Entry类用于创建一个文本框,Listbox类用于创建一个列表框。add_todo函数用于从文本框中获取输入,并将其添加到列表框中。Button类用于创建一个按钮,点击按钮将执行add_todo函数。

6. 创建已完成事项页面内容

在已完成事项选项卡中,我们仅添加一个列表框,用于显示已完成的事项。

done_listbox = Listbox(done_tab)
done_listbox.pack(fill=BOTH, expand=True)

7. 完成和运行程序

最后,我们只需要在主窗口中调用mainloop方法来启动程序。

root.mainloop()

完成后的完整代码如下:

from tkinter import *
from tkinter import ttk

root = Tk()
root.title("ToDo List")
root.geometry("400x300")

notebook = ttk.Notebook(root)
notebook.pack(fill="both", expand=True)

todo_tab = Frame(notebook)
done_tab = Frame(notebook)

notebook.add(todo_tab, text="待办事项")
notebook.add(done_tab, text="已完成事项")

todo_entry = Entry(todo_tab)
todo_entry.pack(pady=10)

todo_listbox = Listbox(todo_tab)
todo_listbox.pack(fill=BOTH, expand=True)

def add_todo():
    todo = todo_entry.get()
    if todo:
        todo_listbox.insert(END, todo)
        todo_entry.delete(0, END)

add_button = Button(todo_tab, text="添加", command=add_todo)
add_button.pack(pady=10)

done_listbox = Listbox(done_tab)
done_listbox.pack(fill=BOTH, expand=True)

root.mainloop()

运行示例程序

保存上述代码为main.py文件,然后通过命令行运行该Python文件:

python main.py

执行上述命令后,程序窗口将会弹出。你可以在待办事项选项卡中输入待办事项,然后点击添加按钮,待办事项将会显示在列表框中。完成事项选项卡中的列表框为空,在待办事项完成后,你可以将其在待办事项列表中删除,并添加到已完成事项列表中。

总结

本文以一个简单的ToDo List应用程序为例,详细介绍了如何使用tkinter中的Notebook组件来创建多选项卡界面。通过学习这个实例,你可以了解到如何创建主窗口、创建Notebook组件、添加选项卡、创建页面内容等基本操作。

tkinter提供了丰富的工具和类,可以满足你创建各种GUI应用程序的需求。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程