欢迎各位兄弟 发布技术文章
这里的技术是共享的
tkinter 是 Python 的标准 GUI 库,提供了多种 控件(Widgets) 用于构建图形用户界面(GUI)。下面介绍一些 常用控件 及其基本用法。
| 控件名称 | 描述 | 基本语法 |
|---|---|---|
Label | 显示文本或图片 | Label(master, text="文本") |
Button | 可点击的按钮 | Button(master, text="按钮", command=回调函数) |
Entry | 单行文本输入框 | Entry(master, width=30) |
Text | 多行文本输入框 | Text(master, width=40, height=10) |
Frame | 容器,用于分组控件 | Frame(master) |
示例代码:
pythonimport tkinter as tk root = tk.Tk() label = tk.Label(root, text="Hello Tkinter!") label.pack() button = tk.Button(root, text="点击我", command=lambda: print("按钮被点击")) button.pack() entry = tk.Entry(root) entry.pack() root.mainloop()
| 控件名称 | 描述 | 基本语法 |
|---|---|---|
Checkbutton | 复选框 | Checkbutton(master, text="选项", variable=var) |
Radiobutton | 单选按钮 | Radiobutton(master, text="选项", variable=var, value=1) |
Combobox (需 ttk) | 下拉选择框 | ttk.Combobox(master, values=["A", "B", "C"]) |
Listbox | 列表选择框 | Listbox(master) |
Scale | 滑块数值选择 | Scale(master, from_=0, to=100) |
示例代码:
pythonimport tkinter as tk from tkinter import ttk root = tk.Tk() # Checkbutton check_var = tk.IntVar() check = tk.Checkbutton(root, text="同意条款", variable=check_var) check.pack() # Radiobutton radio_var = tk.StringVar() radio1 = tk.Radiobutton(root, text="男", variable=radio_var, value="male") radio2 = tk.Radiobutton(root, text="女", variable=radio_var, value="female") radio1.pack(); radio2.pack() # Combobox combo = ttk.Combobox(root, values=["苹果", "香蕉", "橙子"]) combo.pack() root.mainloop()
| 控件名称 | 描述 | 基本语法 |
|---|---|---|
PanedWindow | 可调整分隔面板 | PanedWindow(master, orient=HORIZONTAL) |
Notebook (需 ttk) | 标签页 | ttk.Notebook(master) |
Scrollbar | 滚动条 | Scrollbar(master) |
示例代码:
pythonimport tkinter as tk from tkinter import ttk root = tk.Tk() # Notebook(标签页) notebook = ttk.Notebook(root) tab1 = tk.Frame(notebook) tab2 = tk.Frame(notebook) notebook.add(tab1, text="选项卡1") notebook.add(tab2, text="选项卡2") notebook.pack() # Scrollbar(滚动条) text = tk.Text(root, wrap="none") scroll = tk.Scrollbar(root, command=text.yview) text.config(yscrollcommand=scroll.set) text.pack(side="left") scroll.pack(side="right", fill="y") root.mainloop()
| 控件名称 | 描述 | 基本语法 |
|---|---|---|
Message | 自动换行的文本 | Message(master, text="长文本…") |
Messagebox | 弹出对话框 | messagebox.showinfo("标题", "消息") |
filedialog | 文件选择对话框 | filedialog.askopenfilename() |
示例代码:
pythonimport tkinter as tk from tkinter import messagebox, filedialog root = tk.Tk() # Messagebox def show_msg(): messagebox.showinfo("提示", "欢迎使用Tkinter!") btn = tk.Button(root, text="显示对话框", command=show_msg) btn.pack() # Filedialog def open_file(): file_path = filedialog.askopenfilename() print("选择了文件:", file_path) btn_file = tk.Button(root, text="选择文件", command=open_file) btn_file.pack() root.mainloop()
| 控件名称 | 描述 | 基本语法 |
|---|---|---|
Canvas | 画布,可绘图、图片 | Canvas(master, width=300, height=200) |
PhotoImage | 加载图片(仅 GIF/PPM/PGM) | PhotoImage(file="image.gif") |
ttk.Label (支持更多格式) | 支持 PNG/JPG(需 Pillow) | from PIL import Image, ImageTk |
示例代码:
pythonimport tkinter as tk from PIL import Image, ImageTk # 安装: pip install Pillow root = tk.Tk() # Canvas(画布) canvas = tk.Canvas(root, width=300, height=200) canvas.pack() canvas.create_rectangle(10, 10, 100, 100, fill="blue") # 加载图片 img = Image.open("example.jpg") # 支持JPG/PNG photo = ImageTk.PhotoImage(img) img_label = tk.Label(root, image=photo) img_label.pack() root.mainloop()
基础控件(Label, Button, Entry, Frame)
选择控件(Checkbutton, Radiobutton, Combobox, Listbox)
布局控件(Notebook, Scrollbar, PanedWindow)
消息控件(Messagebox, Filedialog)
画布 & 图像(Canvas, PhotoImage, PIL)
你可以组合这些控件来构建复杂的 GUI 应用