📜  tkinter 教程 - Python (1)

📅  最后修改于: 2023-12-03 15:20:38.702000             🧑  作者: Mango

Tkinter 教程 - Python

Tkinter 是 Python 自带的 GUI 工具包,最初是基于 Tcl/Tk 开发的,后来通过 Python 的绑定实现了与 Python 的结合。Tkinter 的优势在于简单易学,对于小型应用程序是非常实用的。本教程将介绍 Tkinter 的基础知识,包括窗口、按钮、标签等常用 GUI 元素的创建和布局,以及事件处理和菜单等高级功能的实现。

安装

Python 自带了 Tkinter,所以不需要额外安装任何依赖库。

创建窗口

首先,我们需要创建一个窗口。以下代码演示了如何创建一个简单的窗口。

from tkinter import *

root = Tk()
root.title("Hello, Tkinter!")
root.mainloop()

以上代码中的 Tk() 函数用于创建一个顶层窗口,并将它存储在变量 root 中。title() 方法用于设置窗口标题。最后一行的 mainloop() 方法用于启动窗口的事件循环(即让窗口保持运行状态)。

以上代码显示的窗口是没有任何内容的,只有一个标题栏和关闭按钮。你可以使用其他 Tkinter 控件来填充窗口并提供交互功能。以下是一些常用的控件:

标签(Label)

标签用于显示文本或图像。以下代码演示了如何创建一个标签:

label = Label(root, text="Hello, Tkinter!")
label.pack()

其中 Label() 函数用于创建一个标签控件,它接收两个参数:所属窗口(root),标签文本(text=...)。pack() 方法用于将标签与其他部件进行打包并在窗口中显示出来。

按钮(Button)

按钮用于触发事件或执行特定操作。以下代码演示了如何创建一个按钮:

def onclick():
    label.config(text="Hello, Tkinter!")

button = Button(root, text="Click me", command=onclick)
button.pack()

在以上代码中,Button() 函数用于创建一个按钮控件,它接收三个参数:所属窗口(root)、按钮文本(text=...)、按钮点击时要执行的函数(command=...)。这里我们定义了一个名为 onclick() 的函数,并将其作为 command 参数传递给 Button() 函数。onclick() 函数用于更改标签文本。在创建按钮之后,我们使用 pack() 方法将其打包并添加到窗口中。

文本框(Entry)

文本框用于接收用户输入。以下代码演示了如何创建一个文本框:

entry = Entry(root)
entry.pack()

这里我们创建了一个 Entry() 控件,并将其与窗口进行了打包。用户可以在运行程序时在文本框中输入任意文本。

菜单(Menu)

菜单用于提供程序菜单和上下文菜单。以下代码演示了如何创建一个菜单:

menu_bar = Menu(root)
root.config(menu=menu_bar)

file_menu = Menu(menu_bar, tearoff=0)
file_menu.add_command(label="New")
file_menu.add_command(label="Open")
file_menu.add_separator()
file_menu.add_command(label="Exit", command=root.quit)

menu_bar.add_cascade(label="File", menu=file_menu)

以上代码中,我们首先创建了一个 Menu() 对象,它将成为我们菜单栏的一部分。然后我们将 menu 属性设置为 root,以便菜单在窗口中正确显示。接下来,我们创建了这个菜单的第一个子菜单:文件菜单。tearoff 参数指定了这个菜单是否可以在窗口之外拖拽。add_command() 方法用于向菜单中添加命令,add_separator() 方法用于添加分隔符(用于将菜单项分组)。最后,我们使用 add_cascade 方法将子菜单与主菜单关联起来,并为子菜单指定一个标签。

总结

Tkinter 是 Python 内置的 GUI 工具包,它提供了创建窗口、标签、按钮、文本框和菜单等常见 GUI 元素的功能。本教程介绍了这些功能的基本用法,包括控件的创建和布局,事件处理和菜单等高级功能的实现。在您掌握了以上知识后,您可以更深入地学习 Tkinter 的其他功能。