欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

tkinter 常用控件 AG chatgpt 有大用 有大大用

tkinter 是 Python 的标准 GUI 库,提供了多种 控件(Widgets) 用于构建图形用户界面(GUI)。下面介绍一些 常用控件 及其基本用法。


1. 基础控件

控件名称描述基本语法
Label显示文本或图片Label(master, text="文本")
Button可点击的按钮Button(master, text="按钮", command=回调函数)
Entry单行文本输入框Entry(master, width=30)
Text多行文本输入框Text(master, width=40, height=10)
Frame容器,用于分组控件Frame(master)

示例代码:

python
import 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()

2. 选择控件

控件名称描述基本语法
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)

示例代码:

python
import 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()

3. 布局控件

控件名称描述基本语法
PanedWindow可调整分隔面板PanedWindow(master, orient=HORIZONTAL)
Notebook (需 ttk)标签页ttk.Notebook(master)
Scrollbar滚动条Scrollbar(master)

示例代码:

python
import 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()

4. 消息控件

控件名称描述基本语法
Message自动换行的文本Message(master, text="长文本…")
Messagebox弹出对话框messagebox.showinfo("标题", "消息")
filedialog文件选择对话框filedialog.askopenfilename()

示例代码:

python
import 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()

5. 画布 & 图像

控件名称描述基本语法
Canvas画布,可绘图、图片Canvas(master, width=300, height=200)
PhotoImage加载图片(仅 GIF/PPM/PGM)PhotoImage(file="image.gif")
ttk.Label (支持更多格式)支持 PNG/JPG(需 Pillowfrom PIL import Image, ImageTk

示例代码:

python
import 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 应用


普通分类: