Tkinter SimpleDialog 模块

Salman Mehmood 2024年2月15日
  1. 在 Tkinter 中使用 askinteger() 方法从用户获取整数值
  2. 在 Tkinter 中使用 askfloat() 方法从用户获取浮点值
  3. 在 Tkinter 中使用 askstring() 方法从用户获取字符串值
Tkinter SimpleDialog 模块

在本教程中,我们将学习如何在 Tkinter 中创建一个 simpledialog 框,然后我们将了解如何使用 simpledialog 框的不同方法从用户那里获取多个值。

simpledialog 框是 Python 中 Tkinter 库中的一个类,它创建对话框以各种方式获取用户输入。simpledialog 是响应用户的小弹出对话框,允许我们从用户那里获取各种数据,例如整数、浮点数和字符串值。

大多数情况下,我们需要创建一个 TK() 的对象来操作不同的组件。如果 Tkinter 窗口不存在,这些函数将自动创建一个弹出窗口。

在 Tkinter 中使用 askinteger() 方法从用户获取整数值

本节将介绍 askinteger() 方法,该方法允许用户在弹出窗口中出现的文本字段中输入整数。此方法返回一个整数。

我们需要导入一个 simpledialog 类,它允许我们使用它的方法。

from tkinter import simpledialog

我们将创建一个 Button 组件,它使用命令参数调用 intdialogbox 函数。

dialog_btn = Button(window, text="dialog button", command=intdialogbox)
dialog_btn.pack()

askinteger() 方法采用多个参数。第一个参数接受输入作为值,第二个参数是将出现在对话框中的文本消息。

第三个参数是 parent(这个参数是可选的),它采用 Tk() 对象创建的根窗口。在以下示例中,Label 组件将对话框的输出存储在 dialog_output 变量中。

代码:

from tkinter import *
from tkinter import simpledialog

# Create an object of TK (tkinter window)
window = Tk()
window.geometry("200x200")
window.title("Deltstack")


def intdialogbox():
    # this method accepts integer and returns integer
    employee_age = simpledialog.askinteger("Input", "Enter your age", parent=window)
    dialog_output = Label(
        window, text=f"Employee age is {employee_age}", font=("italic 12")
    )
    dialog_output.pack(pady=20)


dialog_btn = Button(window, text="dialog button", command=intdialogbox)
dialog_btn.pack()

window.mainloop()

输出:

在 Tkinter 中使用 askinteger() 方法从用户获取整数值

在 Tkinter 中使用 askfloat() 方法从用户获取浮点值

我们可以将 askfloat() 方法用于浮点输入,它是一个带小数的数字。此方法返回一个浮点值。

此方法与 askinteger() 方法的工作方式相同,但返回值不同。我们将讨论称为 minvaluemaxmavlue 的参数。

minvaluemaxmavlue 决定了一个值的范围,用户将被限制在一个有限的范围内,它是一种验证。

代码:

from tkinter import *
from tkinter import simpledialog

# Create an object of TK (tkinter window)
window = Tk()
window.geometry("300x200")
window.title("Deltstack")


def floatdialogbox():
    # this method accepts float and returns float
    income_tax = simpledialog.askfloat(
        "Input", "Enter the tax", parent=window, minvalue=1.0, maxvalue=10.0
    )
    dialog_output = Label(
        window, text=f"Your tax is {income_tax} percent", font=("italic 12")
    )
    dialog_output.pack(pady=20)


dialog_btn = Button(window, text="dialog button", command=floatdialogbox)
dialog_btn.pack()

window.mainloop()

输出:

在 Tkinter 中使用 askfloat() 方法从用户获取浮点数

在 Tkinter 中使用 askstring() 方法从用户获取字符串值

askstring() 方法帮助用户在对话框中输入一个字符串值并返回一个字符串作为输出。该对话框采用下面代码中的名称并将其显示在标签中。

代码:

from tkinter import *
from tkinter import simpledialog

# Create an object of TK (tkinter window)
window = Tk()
window.geometry("300x200")
window.title("Deltstack")


def stringdialogbox():
    # this method accepts float and returns float
    Employee_name = simpledialog.askstring("Input", "Enter your name", parent=window)
    dialog_output = Label(
        window, text=f"The employee name is {Employee_name}", font=("italic 12")
    )
    dialog_output.pack(pady=20)


dialog_btn = Button(window, text="dialog button", command=stringdialogbox)
dialog_btn.pack()

window.mainloop()

输出:

在 Tkinter 中使用 askstring() 方法从用户获取字符串值

单击此处以阅读有关 simpledialog 框的更多信息。

作者: Salman Mehmood
Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn