使用 tkinter 在Python中创建是/否消息框
Python提供了许多图形用户界面 (GUI) 框架,但 Tk 界面或 tkinter 是使用最广泛的框架。它是跨平台的,无论操作系统平台(Windows、Linux 或 macOS)如何,都可以运行相同的代码。 Tkinter 是轻量级、快速且易于使用的。 Tkinter 提供了各种可以使用标准属性和几何管理方法定制的小部件。 Tkinter 消息框可用于向用户提问或显示消息。
注意:更多信息请参考Python GUI – tkinter
创建 tkinter 消息框的步骤:
- 导入 tkinter 模块
import tkinter as tk from tkinter import *
注意: Python 2.x 中的模块名称为“Tkinter”, Python 3.x 中为“tkinter”。这里使用Python 3.x。
- 导入 tkinter 消息框小部件
from tkinter import messagebox as mb
- 创建被调用以显示是/否消息框的方法
def call(): res=mb.askquestion('Exit Application', 'Do you really want to exit') if res == 'yes' : root.destroy() else : mb.showinfo('Return', 'Returning to main application')
解释:
句法:askquestion(title=None, message=None, **options)
范围
- 标题:用于给出显示在对话框标题中的名称。
- 消息:用户的问题。
返回值:单击是选项时返回“是”,单击否选项时返回“否”。
句法:
showinfo(title=None, message=None, **options)
范围
- 标题:用于给出显示在对话框标题中的名称。
- message:用户信息。
句法:
destroy()
此方法销毁一个小部件。
- 为按钮创建画布将被放置
root=tk.Tk() canvas=tk.Canvas(root, width=200, height=200) canvas.pack()
解释:
句法:Tk(screenName=None, baseName=None, className=’Tk’, useTk=1)
用于创建父窗口。 Tk 类是在没有任何参数的情况下实例化的。通过更改 className 参数的值,可以将父窗口的名称更改为所需的名称。这里的'root'是父窗口。
句法:
Canvas(master, option=value)
范围:
- master:用来表示父窗口。这里的'root'是master。
- option:用于指定边框、背景颜色、高度、宽度等。
返回值:该方法返回一个字符串(.!canvas) 。
句法:
pack(**options)
在放置到父小部件之前将小部件组织成块。选项可用于扩展、填充和指定边(左、右、上、下)
- 创建按钮并将其放置在画布内
b=Button(root, text='Quit Application', command=call) canvas.create_window(100, 100, window=b)
解释:
句法:Button(master=None, options)
范围:
- master:这里的root是父窗口。
- 选项:有许多受支持的选项。在这种情况下使用的选项是文本和命令。
- 文本:按钮文本
- command:按下按钮时要调用的操作或方法。
返回值:该方法返回一个字符串(.!button) 。
句法:
create_window(x, y, **options)
范围:
- x, y:指定小部件(按钮)在画布中的位置。
- 选项:支持多种选项,如锚点、高度、宽度、状态、标签、窗口。此处使用的选项是窗口。
- window: window=b 其中 b 是要放置在画布上的小部件(按钮)。
返回值:返回窗口对象的对象 ID。
- 调用 mainloop() 方法
root.mainloop()
解释:
句法:mainloop()
它是一个无限循环,在程序准备好运行时被调用。它等待事件(鼠标点击)发生,一旦收到事件,事件就会被处理。mainloop()只要运行父窗口没有被破坏。
完整的程序如下:
# Python program to create
# yes/no message box
import tkinter as tk
from tkinter import *
from tkinter import messagebox as mb
def call():
res = mb.askquestion('Exit Application',
'Do you really want to exit')
if res == 'yes' :
root.destroy()
else :
mb.showinfo('Return', 'Returning to main application')
# Driver's code
root = tk.Tk()
canvas = tk.Canvas(root,
width = 200,
height = 200)
canvas.pack()
b = Button(root,
text ='Quit Application',
command = call)
canvas.create_window(100, 100,
window = b)
root.mainloop()
输出: