当前位置:首页>python>python高阶:13、tkinter库(Button组件和messagebox)

python高阶:13、tkinter库(Button组件和messagebox)

  • 2026-09-02 20:22:15
python高阶:13、tkinter库(Button组件和messagebox)
1、tkinter库的导入和主窗口的创建(可参考python高阶:12、tkinter库中介绍)
import tkinter as tk  #以别名tk导入tkinter库win=tk.Tk()    #创建主窗口的实例winwin.title("按钮组件测试窗口")    #设置窗口的标题win.geometry("500x500+600+200")#设置窗口的大小和位置win.resizable(True,False)      #设置窗口可水平缩放,禁止垂直缩放tk.mainloop()  #进入事件处理循环,防止窗口闪退
2、messagebox模块
在tkinter中,messagebox是用于弹出标准对话框的模块,能快速实现信息提示、警告、错误报告以及用户进行简单的是否、确认取消等交互。
(1)messagebox模块导入
from tkinter import messagebox #从tkinter库中导入messagebox模块
(2)常用函数
messagebox的函数主要分为提示型和问答型两类:
类别
函数名
显示按钮
返回值
用途
提示
showinfo()
确定
ok
显示一般信息
showwarning()
确定
ok
显示警告信息
showerror()
确定
ok
显示错误信息
问答
askyesno()
是/否
True/False
简单的是/否判断
askokcancel()
确定/取消
True/False
确认执行操作
askretrycancel()
重试/取消
True/False
操作失败,询问是否重试
askquestion()
是/否
yes/no
与askyesno类似,但返回字符串
askyesnocancel()
是/否/取消
True/False/None
包含取消选项的询问
(3)代码示例
import tkinter as tk  #以别名tk导入tkinter库from tkinter import messagebox win=tk.Tk()      #创建主窗口的实例winwin.title("按钮组件测试窗口")    #设置窗口的标题win.geometry("500x500+600+200")#设置窗口的大小和位置win.resizable(True,False)      #设置窗口可水平缩放,禁止垂直缩放result=messagebox.showinfo("确认","确定要执行此操作吗?") #showinfo弹窗print(result)    #点击“确定”,返回oktk.mainloop()    #进入事件处理循环,防止窗口闪退
import tkinter as tk  #以别名tk导入tkinter库from tkinter import messagebox win=tk.Tk()      #创建主窗口的实例winwin.title("按钮组件测试窗口")    #设置窗口的标题win.geometry("500x500+600+200")#设置窗口的大小和位置win.resizable(True,False)      #设置窗口可水平缩放,禁止垂直缩放result=messagebox.askyesno("确认","确定要执行此操作吗?") #是/否弹窗print(result)    #点击“是”,返回True;点击“否”,返回Falsetk.mainloop()    #进入事件处理循环,防止窗口闪退
3、Button组件(类)
在tkinter中,Button组件是最常用的组件之一,用于让用户点击并触发相应的操作。
(1)基本用法
import tkinter as tk  #以别名tk导入tkinter库win=tk.Tk()      #创建主窗口的实例winwin.title("按钮组件测试窗口")    #设置窗口的标题win.geometry("500x500+600+200")#设置窗口的大小和位置win.resizable(True,False)      #设置窗口可水平缩放,禁止垂直缩放btn=tk.Button(win,text="确定") #创建Button类的实例对象btnbtn.pack()   #布局管理器,按组件添加顺序自动排列tk.mainloop()    #进入事件处理循环,防止窗口闪退
(2)常用参数
参数
说明
示例值
text
按钮上显示的文本
"提交"
command
点击时执行的函数
function_name
bg/background
背景颜色
"lightblue"
fg/foreground
文字颜色
"white"
font
字体样式(三元组)
("Arial",12,"bold")
width
按钮宽度(字符数)
10
height
按钮高度(字符数)
2
state
按钮状态
"normal","disabled","active"
padx,pady
内边距
10
import tkinter as tk  #以别名tk导入tkinter库win=tk.Tk()      #创建主窗口的实例winwin.title("按钮组件测试窗口")    #设置窗口的标题win.geometry("500x500+600+200")#设置窗口的大小和位置win.resizable(True,False)      #设置窗口可水平缩放,禁止垂直缩放btn1=tk.Button(win,text="确定",bg="red") btn1.grid(row=0,column=0)                   btn2=tk.Button(win,text="确定",fg="red")btn2.grid(row=0,column=1)btn3=tk.Button(win,text="取消",font=("黑体",15,"bold"))btn3.grid(row=0,column=2)btn4=tk.Button(win,text="提交",width=10,height=2)btn4.grid(row=0,column=3)btn5=tk.Button(win,text="确定",state="disabled") #按钮不可点击btn5.grid(row=1,column=0,columnspan=2)btn6=tk.Button(win,text="确定",padx=10,pady=10)btn6.grid(row=1,column=2,columnspan=2)#以上参数设置也可以放置在同一个按钮对象中,不同参数之间用逗号隔开即可tk.mainloop()         #进入事件处理循环,防止窗口闪退
4、练习(Button组件和messagebox模块结合)
定义函数实现messagebox模块弹窗,使用Button组件的command参数响应按钮事件,当按下不同按钮时,弹出对应对话框。
import tkinter as tk  #以别名tk导入tkinter库from tkinter import messagebox win=tk.Tk()           #创建主窗口的实例winwin.title("按钮组件测试窗口")    #设置窗口的标题win.geometry("200x200+600+200")#设置窗口的大小和位置win.resizable(True,False)      #设置窗口可水平缩放,禁止垂直缩放def showinfo():  #一般信息    messagebox.showinfo("一般","你点击了确定!")def askyesno(): #是/否判断    messagebox.askyesno("判断","选择是或者否?")btn1=tk.Button(win,text="确定",bg="red",command=showinfo) btn1.grid(row=0,column=0)                   btn2=tk.Button(win,text="确定",fg="red",command=askyesno)btn2.grid(row=0,column=1)tk.mainloop()         #进入事件处理循环,防止窗口闪退

最新文章

随机文章