tkinter教程二:tkinter模块下基本组件

组件清单

序号组件名称功能说明
1Button按钮,鼠标单击时执行相应事件
2Label标签,显示文本或图标,起提示作用
3Entry单行文本输入框
4Text多行文本输入框
5CheckButton复选框按钮
6RadioButton单选按钮
7Frame框架,在屏幕上显示一个矩形区域,常用作其它组件容器
8LableFrame标签框架容器,常用于复杂的窗口布局
9ListBox列表框
10Scrollbar滚动条
11Scale刻度条,为输出限定范围的数字区间
12SpinBox输入控件:与Entry类似,但是可以指定输入范围值
13PanedWindow窗口布局管理的插件,可以包含一个或多个子控件
14Toplevel子窗体容器控件;用来提供一个单独的对话框
15Message信息提示对话框
16Menu菜单 、显示菜单栏、下拉菜单和弹出菜单
17Canvas画布

示例

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()
图片[1] - tkinter教程二:tkinter模块下基本组件 - 正则时光

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()
图片[2] - tkinter教程二:tkinter模块下基本组件 - 正则时光

3.17组件示例

Canvas组件是tkinter库中的一个重要组件,它提供了一个绘图区域,允许开发者在这个区域上绘制各种图形、文本、图像等。Canvas组件的主要作用包括:

  1. 绘制图形:可以在画布上绘制各种基本图形,如矩形、圆形、椭圆、多边形、线条等。
  2. 显示图像:可以在画布上显示图像文件。
  3. 绘制文本:可以在画布上绘制文本,并设置文本的字体、颜色等属性。
  4. 创建交互式对象:可以在画布上创建可交互的对象,如按钮、滚动条等。
  5. 实现动画效果:可以通过更新画布上的图形位置来实现简单的动画效果。

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()
图片[3] - tkinter教程二:tkinter模块下基本组件 - 正则时光

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()
图片[4] - tkinter教程二:tkinter模块下基本组件 - 正则时光
© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享