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