组件清单
序号 | 组件名称 | 功能说明 |
---|---|---|
1 | Button | 按钮,鼠标单击时执行相应事件 |
2 | Label | 标签,显示文本或图标,起提示作用 |
3 | Entry | 单行文本输入框 |
4 | Text | 多行文本输入框 |
5 | CheckButton | 复选框按钮 |
6 | RadioButton | 单选按钮 |
7 | Frame | 框架,在屏幕上显示一个矩形区域,常用作其它组件容器 |
8 | LableFrame | 标签框架容器,常用于复杂的窗口布局 |
9 | ListBox | 列表框 |
10 | Scrollbar | 滚动条 |
11 | Scale | 刻度条,为输出限定范围的数字区间 |
12 | SpinBox | 输入控件:与Entry类似,但是可以指定输入范围值 |
13 | PanedWindow | 窗口布局管理的插件,可以包含一个或多个子控件 |
14 | Toplevel | 子窗体容器控件;用来提供一个单独的对话框 |
15 | Message | 信息提示对话框 |
16 | Menu | 菜单 、显示菜单栏、下拉菜单和弹出菜单 |
17 | Canvas | 画布 |
示例
1.1~14组件示例
import tkinter as tk
from tkinter import messagebox, ttk
# 创建主窗口
root = tk.Tk()
root.title("Tkinter组件示例")
# 创建一个Canvas和一个Scrollbar
canvas = tk.Canvas(root)
scrollbar = tk.Scrollbar(root, orient="vertical", command=canvas.yview)
scrollable_frame = tk.Frame(canvas)
scrollable_frame.bind(
"<Configure>",
lambda e: canvas.configure(
scrollregion=canvas.bbox("all")
)
)
canvas.create_window((0, 0), window=scrollable_frame, anchor="nw")
canvas.configure(yscrollcommand=scrollbar.set)
# 标签组件
label = tk.Label(scrollable_frame, text="欢迎使用Tkinter", font=("Arial", 14), fg="blue")
label.pack(pady=10)
# 按钮组件
def on_button_click():
messagebox.showinfo("信息", "按钮被点击了!")
button = tk.Button(scrollable_frame, text="点击我", font=("Arial", 12), command=on_button_click)
button.pack(pady=10)
# 输入框组件
entry = tk.Entry(scrollable_frame, width=30)
entry.pack(pady=10)
# 复选框组件
var1 = tk.IntVar()
var2 = tk.IntVar()
checkbutton1 = tk.Checkbutton(scrollable_frame, text="选项1", variable=var1)
checkbutton1.pack(anchor=tk.W)
checkbutton2 = tk.Checkbutton(scrollable_frame, text="选项2", variable=var2)
checkbutton2.pack(anchor=tk.W)
# 单选按钮组件
var3 = tk.IntVar()
radiobutton1 = tk.Radiobutton(scrollable_frame, text="选项A", variable=var3, value=1)
radiobutton1.pack(anchor=tk.W)
radiobutton2 = tk.Radiobutton(scrollable_frame, text="选项B", variable=var3, value=2)
radiobutton2.pack(anchor=tk.W)
# 列表框组件
listbox = tk.Listbox(scrollable_frame)
listbox.pack(pady=10)
listbox.insert(tk.END, "项目1")
listbox.insert(tk.END, "项目2")
listbox.insert(tk.END, "项目3")
# 文本组件
text = tk.Text(scrollable_frame, height=5, width=40)
text.pack(pady=10)
text.insert(tk.END, "这是一个文本组件,可以输入多行文本。")
# 框架组件
frame = tk.Frame(scrollable_frame)
frame.pack(pady=10)
label_in_frame = tk.Label(frame, text="框架中的标签")
label_in_frame.pack()
# LabelFrame组件
labelframe = tk.LabelFrame(scrollable_frame, text="标签框架", padx=10, pady=10)
labelframe.pack(pady=10)
button_in_labelframe = tk.Button(labelframe, text="标签框架中的按钮")
button_in_labelframe.pack()
# 滚动条组件
scrollbar_example = tk.Scrollbar(scrollable_frame)
scrollbar_example.pack(side=tk.RIGHT, fill=tk.Y)
listbox_with_scrollbar = tk.Listbox(scrollable_frame, yscrollcommand=scrollbar_example.set)
listbox_with_scrollbar.pack(side=tk.LEFT, fill=tk.BOTH)
for i in range(100):
listbox_with_scrollbar.insert(tk.END, f"项目 {i+1}")
scrollbar_example.config(command=listbox_with_scrollbar.yview)
# 滑动条组件
scale = tk.Scale(scrollable_frame, from_=0, to=100, orient=tk.HORIZONTAL)
scale.pack(pady=10)
# 微调框组件
spinbox = tk.Spinbox(scrollable_frame, from_=0, to=10)
spinbox.pack(pady=10)
# PanedWindow组件
panedwindow = tk.PanedWindow(scrollable_frame, orient=tk.HORIZONTAL)
panedwindow.pack(fill=tk.BOTH, expand=1)
pane1 = tk.Label(panedwindow, text="窗格1")
panedwindow.add(pane1)
pane2 = tk.Label(panedwindow, text="窗格2")
panedwindow.add(pane2)
# Toplevel组件
def open_toplevel():
top = tk.Toplevel(root)
top.title("顶级窗口")
top.geometry("300x200")
label_top = tk.Label(top, text="这是一个顶级窗口")
label_top.pack(pady=20)
button_toplevel = tk.Button(scrollable_frame, text="打开顶级窗口", command=open_toplevel)
button_toplevel.pack(pady=10)
# 将Canvas和Scrollbar添加到主窗口
canvas.pack(side="left", fill="both", expand=True)
scrollbar.pack(side="right", fill="y")
# 运行主循环
root.mainloop()
2.15~16组件示例
import tkinter as tk
from tkinter import messagebox
def show_info():
messagebox.showinfo("信息", "这是一个信息消息框")
def show_warning():
messagebox.showwarning("警告", "这是一个警告消息框")
def show_error():
messagebox.showerror("错误", "这是一个错误消息框")
# 创建主窗口
root = tk.Tk()
root.title("Menu和Messagebox示例")
# 创建菜单栏
menu_bar = tk.Menu(root)
# 创建文件菜单
file_menu = tk.Menu(menu_bar, tearoff=0)
file_menu.add_command(label="信息", command=show_info)
file_menu.add_command(label="警告", command=show_warning)
file_menu.add_command(label="错误", command=show_error)
file_menu.add_separator() # 添加分割线
file_menu.add_command(label="退出", command=root.quit)
# 将文件菜单添加到菜单栏
menu_bar.add_cascade(label="文件", menu=file_menu)
# 将菜单栏添加到主窗口
root.config(menu=menu_bar)
# 运行主循环
root.mainloop()
3.17组件示例
Canvas
组件是tkinter
库中的一个重要组件,它提供了一个绘图区域,允许开发者在这个区域上绘制各种图形、文本、图像等。Canvas
组件的主要作用包括:
- 绘制图形:可以在画布上绘制各种基本图形,如矩形、圆形、椭圆、多边形、线条等。
- 显示图像:可以在画布上显示图像文件。
- 绘制文本:可以在画布上绘制文本,并设置文本的字体、颜色等属性。
- 创建交互式对象:可以在画布上创建可交互的对象,如按钮、滚动条等。
- 实现动画效果:可以通过更新画布上的图形位置来实现简单的动画效果。
Canvas
组件非常灵活,适用于需要自定义绘图和交互界面的应用程序。例如,它可以用于创建图形编辑器、数据可视化工具、游戏界面等。
import tkinter as tk
# 创建主窗口
root = tk.Tk()
root.title("Canvas示例")
# 创建一个Canvas组件
canvas = tk.Canvas(root, width=400, height=300, bg="white")
canvas.pack()
# 在Canvas上绘制一个矩形
canvas.create_rectangle(50, 50, 150, 150, fill="blue")
# 在Canvas上绘制一个圆形
canvas.create_oval(200, 50, 300, 150, fill="red")
# 在Canvas上绘制一条线条
canvas.create_line(50, 200, 350, 200, fill="green", width=5)
# 运行主循环
root.mainloop()
PhotoImage组件
PhotoImage
组件只能加载GIF、PNG和PPM/PGM格式的图像。如果你需要加载其他格式的图像(如JPEG),可以使用PIL
库(Pillow)来处理图像。
import tkinter as tk
from tkinter import PhotoImage
# 创建主窗口
root = tk.Tk()
root.title("PhotoImage示例")
# 创建一个Canvas组件
canvas = tk.Canvas(root, width=400, height=300, bg="white")
canvas.pack()
# 加载图像文件
photo = PhotoImage(file="clash.png")
# 在Canvas上显示图像
canvas.create_image(200, 150, image=photo)
# 运行主循环
root.mainloop()
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END