Tkinter 是 Python 的标准 GUI(Graphical User Interface,图形用户界面)库,用于创建桌面应用程序。以下是 Tkinter 的一些基础知识:

1. 导入 Tkinter

在使用 Tkinter 之前,需要先导入它。通常有两种导入方式:

import tkinter as tk  # 推荐这种方式,将 tkinter 简写成 tk
# 或者
from tkinter import *  # 不推荐,可能会导致命名冲突
  • 1.
  • 2.
  • 3.
2. 创建主窗口

每个 Tkinter 应用程序都需要一个主窗口。可以使用 Tk() 类来创建主窗口:

root = tk.Tk()
root.title("我的第一个 Tkinter 应用")
root.mainloop()
  • 1.
  • 2.
  • 3.
  • root = tk.Tk() 创建了主窗口对象。
  • root.title("标题内容") 设置窗口的标题。
  • root.mainloop() 启动主事件循环,使窗口保持显示状态,等待用户交互。
3. 几何管理器

几何管理器用于在窗口中组织和排列组件(widgets)。Tkinter 提供了三种几何管理器:

  • pack():按添加顺序将组件垂直或水平排列。例如:
label = tk.Label(root, text="这是一个标签")
label.pack()
  • 1.
  • 2.
  • grid():使用表格结构来定位组件,通过 rowcolumn 参数指定位置。例如:
entry = tk.Entry(root)
entry.grid(row = 0, column = 0)
button = tk.Button(root, text="点击我")
button.grid(row = 0, column = 1)
  • 1.
  • 2.
  • 3.
  • 4.
  • place():通过指定绝对坐标来精确放置组件,但不推荐在大多数情况下使用,因为它对窗口大小调整不友好。例如:
canvas = tk.Canvas(root, width = 100, height = 100)
canvas.place(x = 50, y = 50)
  • 1.
  • 2.
4. 常用组件(Widgets)
  • Label:用于显示文本或图像。
label = tk.Label(root, text="欢迎使用 Tkinter", fg="blue", font=("Arial", 16))
label.pack()
  • 1.
  • 2.
  • Entry:用于接收用户的单行文本输入。
entry = tk.Entry(root)
entry.pack()
  • 1.
  • 2.
  • Button:按钮,可绑定一个函数,在点击按钮时执行该函数。
def click():
    print("按钮被点击了")
button = tk.Button(root, text="点击我", command = click)
button.pack()
  • 1.
  • 2.
  • 3.
  • 4.
  • Text:用于接收和显示多行文本。
text = tk.Text(root, height = 5, width = 30)
text.pack()
  • 1.
  • 2.
  • Radiobutton:单选按钮,用于从一组选项中选择一个。
var = tk.IntVar()
radio1 = tk.Radiobutton(root, text="选项1", variable = var, value = 1)
radio2 = tk.Radiobutton(root, text="选项2", variable = var, value = 2)
radio1.pack()
radio2.pack()
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • Checkbutton:复选框,用于选择多个选项中的零个或多个。
var1 = tk.IntVar()
check = tk.Checkbutton(root, text="选择我", variable = var1)
check.pack()
  • 1.
  • 2.
  • 3.
5. 事件绑定

Tkinter 允许将函数绑定到组件的特定事件上,例如按钮点击、键盘按键等。常见的事件有 <Button - 1>(鼠标左键点击)、<Return>(回车键按下)等。

def on_click(event):
    print("鼠标左键被点击了")
button = tk.Button(root, text="点击")
button.bind("<Button - 1>", on_click)
button.pack()
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
6. 变量类型

Tkinter 提供了几种特殊的变量类型,用于与组件进行交互,如 IntVarStringVarDoubleVar 等。这些变量可以与组件(如 EntryRadiobutton 等)关联,方便获取和设置组件的值。

var = tk.StringVar()
entry = tk.Entry(root, textvariable = var)
entry.pack()
value = var.get()  # 获取输入框的值
var.set("新的值")  # 设置输入框的值
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

通过掌握这些基础知识,你就可以开始创建简单的 Tkinter 应用程序,并逐步深入学习更复杂的功能和布局。