📜  使用 tkinter 在Python中创建是/否消息框

📅  最后修改于: 2022-05-13 01:55:49.449000             🧑  作者: Mango

使用 tkinter 在Python中创建是/否消息框

Python提供了许多图形用户界面 (GUI) 框架,但 Tk 界面或 tkinter 是使用最广泛的框架。它是跨平台的,无论操作系统平台(Windows、Linux 或 macOS)如何,都可以运行相同的代码。 Tkinter 是轻量级、快速且易于使用的。 Tkinter 提供了各种可以使用标准属性和几何管理方法定制的小部件。 Tkinter 消息框可用于向用户提问或显示消息。

注意:更多信息请参考Python GUI – tkinter

创建 tkinter 消息框的步骤:

  1. 导入 tkinter 模块
    import tkinter as tk
    from tkinter import *

    注意: Python 2.x 中的模块名称为“Tkinter”, Python 3.x 中为“tkinter”。这里使用Python 3.x。

  2. 导入 tkinter 消息框小部件
    from tkinter import messagebox as mb
  3. 创建被调用以显示是/否消息框的方法
    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() 

    此方法销毁一个小部件。

  4. 为按钮创建画布将被放置
    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) 

    在放置到父小部件之前将小部件组织成块。选项可用于扩展、填充和指定边(左、右、上、下)

  5. 创建按钮并将其放置在画布内
    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。

  6. 调用 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()

输出: