详细介绍 Python 的标准 GUI库 tkinter 中常见的组件
2025-04-05 11:11:45 6 分享链接 开发笔记 python
tkinter
是 Python 的标准 GUI(图形用户界面)库,提供了多种组件用于创建 GUI 应用程序。下面详细介绍 tkinter
中常见的组件,包括 tk.Button
、tk.Entry
、tk.Frame
等。
1. 顶层窗口组件
Tk
- 说明:这是
tkinter
应用程序的主窗口,每个tkinter
应用都必须有一个Tk
实例。它是所有其他组件的根容器。 - 示例:
- 说明:这是
import tkinter as tk
root = tk.Tk()
root.title("主窗口示例")
root.mainloop()
Toplevel
- 说明:用于创建额外的顶层窗口,类似于新的独立窗口。可以在主窗口之外创建多个
Toplevel
窗口。 - 示例:
- 说明:用于创建额外的顶层窗口,类似于新的独立窗口。可以在主窗口之外创建多个
import tkinter as tk
root = tk.Tk()
new_window = tk.Toplevel(root)
new_window.title("新窗口")
root.mainloop()
2. 布局组件
Frame
- 说明:是一个容器组件,用于组织和布局其他组件。可以将相关的组件放在一个
Frame
中,便于管理和布局。 - 示例:
- 说明:是一个容器组件,用于组织和布局其他组件。可以将相关的组件放在一个
import tkinter as tk
root = tk.Tk()
frame = tk.Frame(root)
frame.pack()
button = tk.Button(frame, text="按钮在 Frame 内")
button.pack()
root.mainloop()
3. 文本显示组件
Label
- 说明:用于显示文本或图像。可以设置文本内容、字体、颜色等属性。
- 示例:
import tkinter as tk
root = tk.Tk()
label = tk.Label(root, text="这是一个标签")
label.pack()
root.mainloop()
Message
- 说明:类似于
Label
,但更适合显示多行文本,会自动换行。 - 示例:
- 说明:类似于
import tkinter as tk
root = tk.Tk()
message = tk.Message(root, text="这是一个多行消息,会自动换行显示。")
message.pack()
root.mainloop()
4. 输入组件
Entry
- 说明:用于单行文本输入。用户可以在
Entry
中输入和编辑文本。 - 示例:
- 说明:用于单行文本输入。用户可以在
import tkinter as tk
root = tk.Tk()
entry = tk.Entry(root)
entry.pack()
root.mainloop()
Text
- 说明:用于多行文本输入和显示。可以输入、编辑和显示大量文本,支持滚动条等功能。
- 示例:
import tkinter as tk
root = tk.Tk()
text = tk.Text(root)
text.pack()
root.mainloop()
5. 按钮组件
Button
- 说明:用于触发特定的操作。可以为按钮绑定一个回调函数,当按钮被点击时执行该函数。
- 示例:
import tkinter as tk
def button_clicked():
print("按钮被点击了")
root = tk.Tk()
button = tk.Button(root, text="点击我", command=button_clicked)
button.pack()
root.mainloop()
Checkbutton
- 说明:用于创建复选框,用户可以选择或取消选择。每个
Checkbutton
都有一个关联的布尔变量,用于表示其状态。 - 示例:
- 说明:用于创建复选框,用户可以选择或取消选择。每个
import tkinter as tk
root = tk.Tk()
var = tk.IntVar()
checkbutton = tk.Checkbutton(root, text="选择我", variable=var)
checkbutton.pack()
root.mainloop()
Radiobutton
- 说明:用于创建单选按钮,用户只能从一组单选按钮中选择一个。每个
Radiobutton
都与同一个变量关联,通过不同的值来区分不同的选项。 - 示例:
- 说明:用于创建单选按钮,用户只能从一组单选按钮中选择一个。每个
import tkinter as tk
root = tk.Tk()
var = tk.StringVar()
var.set("选项1")
radio1 = tk.Radiobutton(root, text="选项1", variable=var, value="选项1")
radio2 = tk.Radiobutton(root, text="选项2", variable=var, value="选项2")
radio1.pack()
radio2.pack()
root.mainloop()
6. 菜单组件
Menu
- 说明:用于创建菜单栏和下拉菜单。可以在主窗口的顶部创建菜单栏,每个菜单栏下可以有多个下拉菜单。
- 示例:
import tkinter as tk
root = tk.Tk()
menubar = tk.Menu(root)
filemenu = tk.Menu(menubar, tearoff=0)
filemenu.add_command(label="打开")
filemenu.add_command(label="保存")
filemenu.add_separator()
filemenu.add_command(label="退出", command=root.quit)
menubar.add_cascade(label="文件", menu=filemenu)
root.config(menu=menubar)
root.mainloop()
7. 滚动条组件
Scrollbar
- 说明:用于为可滚动的组件(如
Text
、Listbox
等)添加滚动功能。可以垂直或水平滚动。 - 示例:
- 说明:用于为可滚动的组件(如
import tkinter as tk
root = tk.Tk()
text = tk.Text(root)
scrollbar = tk.Scrollbar(root, command=text.yview)
text.config(yscrollcommand=scrollbar.set)
scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
text.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
root.mainloop()
8. 列表组件
Listbox
- 说明:用于显示一个列表项,用户可以选择其中的一项或多项。可以添加、删除和修改列表项。
- 示例:
import tkinter as tk
root = tk.Tk()
listbox = tk.Listbox(root)
listbox.insert(tk.END, "项目1")
listbox.insert(tk.END, "项目2")
listbox.pack()
root.mainloop()
9. 选择组件
OptionMenu
- 说明:用于创建下拉选择菜单,用户可以从预定义的选项中选择一个。
- 示例:
import tkinter as tk
root = tk.Tk()
options = ["选项1", "选项2", "选项3"]
var = tk.StringVar()
var.set(options[0])
optionmenu = tk.OptionMenu(root, var, *options)
optionmenu.pack()
root.mainloop()
10. 进度条组件
Progressbar
- 说明:用于显示任务的进度。可以设置进度条的模式(如确定模式和不确定模式)和当前进度值。
- 示例:
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
progressbar = ttk.Progressbar(root, orient=tk.HORIZONTAL, length=300, mode='determinate')
progressbar.pack()
progressbar['value'] = 50
root.mainloop()
以上是 tkinter
中常见的组件,每个组件都有其特定的用途和属性,可以根据需要组合使用这些组件来创建复杂的 GUI 应用程序。
最近更新
- 2025-04-05 11:41
- 记录main.py调用另一个python文件的直接引用函数方法
- 2025-04-05 11:11
- 详细介绍 Python 的标准 GUI库 tkinter 中常见的组件
- 2025-04-05 01:44
- 在 tkinter 里,grid 布局与 pack布局 place布局的区别
- 2025-04-05 00:35
- 在 tkinter 里,grid 布局管理器采用 Frame 布局的原因
- 2025-04-05 00:07
- 在 tkinter 里,sticky 是 grid 布局管理器中的一个重要参数
- 2025-04-03 16:57
- JavaScript 的 MutationObserver API基础解释
- 2025-03-31 17:51
- 4:3 与 9:16 比例的壁纸,常见的分辨率有以下几种:
- 2025-03-29 04:44
- BeautifulSoup 对象的一些常见方法
- 2025-03-29 04:02
- 除了BingWallpaper,还有哪些库可以获取必应历史壁纸?
- 2025-03-29 03:17
- 必应手机壁纸常见的尺寸有哪些?