Tkinter是Python中最常用的GUI(Graphical User Interface)工具包之一,它是Python标准库中自带的一部分,因此无需额外安装。Tkinter提供了一系列的接口,帮助开发者快速实现图形化界面。Tkinter拥有广泛的应用范围,可以应用于各种系统平台,它被广泛应用于开发桌面应用、实现数据可视化等行业。
一、Tkinter基础
1、创建一个简单的GUI窗口
import tkinter as tk root = tk.Tk() # 创建一个根窗体 root.mainloop() # 启动GUI程序循环
2、设置窗口标题和大小
import tkinter as tk
root = tk.Tk()
root.title("我的GUI窗体") # 设置窗口标题
root.geometry("600x400") # 设置窗口大小
root.mainloop()
3、在窗口中添加标签(Label)
import tkinter as tk
root = tk.Tk()
root.title("我的GUI窗体")
root.geometry("600x400")
label = tk.Label(root, text="欢迎使用Tkinter!")
label.pack() # 将标签添加到窗口中
root.mainloop()
二、Tkinter中的常用控件
1、按钮(Button)
import tkinter as tk
def on_button_click():
print("按钮被点击了!")
root = tk.Tk()
root.title("我的GUI窗体")
root.geometry("600x400")
button = tk.Button(root, text="点击我", command=on_button_click)
button.pack()
root.mainloop()
2、文本框(Entry)
import tkinter as tk
def on_button_click():
label.config(text="你好," + entry.get())
root = tk.Tk()
root.title("我的GUI窗体")
root.geometry("600x400")
label = tk.Label(root, text="请输入你的名字:")
label.pack()
entry = tk.Entry(root)
entry.pack()
button = tk.Button(root, text="确定", command=on_button_click)
button.pack()
root.mainloop()
3、选择框(Checkbutton)
import tkinter as tk
root = tk.Tk()
root.title("我的GUI窗体")
root.geometry("600x400")
var1 = tk.BooleanVar()
check1 = tk.Checkbutton(root, text="选择1", variable=var1)
check1.pack()
var2 = tk.BooleanVar()
check2 = tk.Checkbutton(root, text="选择2", variable=var2)
check2.pack()
root.mainloop()
4、滑动条(Scale)
import tkinter as tk
root = tk.Tk()
root.title("我的GUI窗体")
root.geometry("600x400")
var = tk.DoubleVar()
scale = tk.Scale(root, variable=var, from_=0, to=100)
scale.pack()
root.mainloop()
5、菜单(Menu)
import tkinter as tk
def on_menu_click():
label.config(text="你选择了" + var.get())
root = tk.Tk()
root.title("我的GUI窗体")
root.geometry("600x400")
menubar = tk.Menu(root) # 创建菜单栏
var = tk.StringVar()
var.set("Python")
menu1 = tk.Menu(menubar, tearoff=0) # 创建一级菜单
menu1.add_radiobutton(label="Python", variable=var, command=on_menu_click)
menu1.add_radiobutton(label="Java", variable=var, command=on_menu_click)
menu1.add_radiobutton(label="C++", variable=var, command=on_menu_click)
menubar.add_cascade(label="编程语言", menu=menu1) # 添加一级菜单
root.config(menu=menubar) # 将菜单栏添加到窗体中
label = tk.Label(root, text="请选择一种编程语言")
label.pack()
root.mainloop()
三、Tkinter中的布局管理器
1、Pack布局管理器
import tkinter as tk
root = tk.Tk()
root.title("我的GUI窗体")
root.geometry("600x400")
label1 = tk.Label(root, text="标签1", bg="red")
label1.pack(side=tk.LEFT)
label2 = tk.Label(root, text="标签2", bg="green")
label2.pack(side=tk.LEFT)
label3 = tk.Label(root, text="标签3", bg="blue")
label3.pack(side=tk.LEFT)
root.mainloop()
2、Grid布局管理器
import tkinter as tk
root = tk.Tk()
root.title("我的GUI窗体")
root.geometry("600x400")
label1 = tk.Label(root, text="标签1", bg="red")
label1.grid(row=0, column=0)
label2 = tk.Label(root, text="标签2", bg="green")
label2.grid(row=0, column=1)
label3 = tk.Label(root, text="标签3", bg="blue")
label3.grid(row=1, columnspan=2)
root.mainloop()
3、Place布局管理器
import tkinter as tk
root = tk.Tk()
root.title("我的GUI窗体")
root.geometry("600x400")
label = tk.Label(root, text="标签", bg="red")
label.place(x=50, y=50)
root.mainloop()
四、Tkinter中的事件处理
1、按钮点击事件
import tkinter as tk
def on_button_click():
label.config(text="按钮被点击了!")
root = tk.Tk()
root.title("我的GUI窗体")
root.geometry("600x400")
button = tk.Button(root, text="点击我", command=on_button_click)
button.pack()
label = tk.Label(root, text="请点击按钮")
label.pack()
root.mainloop()
2、键盘事件
import tkinter as tk
def on_key(event):
print("按下了" + event.char)
root = tk.Tk()
root.title("我的GUI窗体")
root.geometry("600x400")
entry = tk.Entry(root)
entry.bind("", on_key) # 绑定键盘事件
entry.pack()
root.mainloop()
3、鼠标事件
import tkinter as tk
def on_mouse_click(event):
label.config(text="鼠标点击了坐标为{}的位置".format(event.x, event.y))
def on_mouse_move(event):
label.config(text="鼠标移动到坐标为{}的位置".format(event.x, event.y))
root = tk.Tk()
root.title("我的GUI窗体")
root.geometry("600x400")
label = tk.Label(root, text="请点击鼠标")
label.pack()
root.bind("", on_mouse_click) # 绑定鼠标点击事件
root.bind("", on_mouse_move) # 绑定鼠标移动事件
root.mainloop()
五、Tkinter中的画布(Canvas)
1、绘制直线
import tkinter as tk
root = tk.Tk()
root.title("我的GUI窗体")
root.geometry("600x400")
canvas = tk.Canvas(root, width=300, height=200)
canvas.pack()
canvas.create_line(0, 0, 300, 200, fill="red")
root.mainloop()
2、绘制矩形
import tkinter as tk
root = tk.Tk()
root.title("我的GUI窗体")
root.geometry("600x400")
canvas = tk.Canvas(root, width=300, height=200)
canvas.pack()
canvas.create_rectangle(50, 50, 250, 150, fill="green")
root.mainloop()
3、绘制圆形
import tkinter as tk
root = tk.Tk()
root.title("我的GUI窗体")
root.geometry("600x400")
canvas = tk.Canvas(root, width=300, height=200)
canvas.pack()
canvas.create_oval(50, 50, 250, 150, fill="blue")
root.mainloop()
六、Tkinter中的图片处理
1、显示图片
import tkinter as tk
from PIL import Image, ImageTk
root = tk.Tk()
root.title("我的GUI窗体")
root.geometry("600x400")
image = Image.open("test.png")
photo = ImageTk.PhotoImage(image)
label = tk.Label(root, image=photo)
label.pack()
root.mainloop()
2、添加按钮以改变图片
import tkinter as tk
from PIL import Image, ImageTk
root = tk.Tk()
root.title("我的GUI窗体")
root.geometry("600x400")
image1 = Image.open("test1.png")
photo1 = ImageTk.PhotoImage(image1)
image2 = Image.open("test2.png")
photo2 = ImageTk.PhotoImage(image2)
label = tk.Label(root, image=photo1)
label.pack()
def on_button_click():
label.config(image=photo2)
button = tk.Button(root, text="改变图片", command=on_button_click)
button.pack()
root.mainloop()
七、Tkinter应用实例
一个简单的计算器程序
import tkinter as tk
root = tk.Tk()
root.title("计算器")
root.geometry("300x200")
var1 = tk.StringVar()
entry1 = tk.Entry(root, textvariable=var1, font=("Arial", 14))
entry1.pack()
var2 = tk.StringVar()
entry2 = tk.Entry(root, textvariable=var2, font=("Arial", 14))
entry2.pack()
var3 = tk.StringVar()
label = tk.Label(root, textvariable=var3, font=("Arial", 14))
label.pack()
def on_button_click():
num1 = float(var1.get())
num2 = float(var2.get())
result = num1 + num2
var3.set("结果为:" + str(result))
button = tk.Button(root, text="相加", command=on_button_click, font=("Arial", 14))
button.pack()
root.mainloop()
八、总结
Tkinter是Python中最常用的GUI工具包之一,它提供了丰富的控件和布局管理器,帮助开发人员快速实现图形化界面。同时,Tkinter还提供了很多事件处理和画布等功能,可以满足各种应用场景的需求。本文介绍了Tkinter的基础知识、常用控件和布局管理器、事件处理、画布以及图片处理等方面的内容,并给出了简单的应用实例。开发者可以根据需求,了解更多的Tkinter接口,并深入探究其应用。
原创文章,作者:JYAJ,如若转载,请注明出处:https://www.506064.com/n/144447.html
微信扫一扫
支付宝扫一扫