如何在 tkinter 中创建模态对话框?
tkinterpythongui-programming更新于 2025/6/19 16:12:17
对话框是任何应用程序的一个非常重要的组件。它通常用于与用户和应用程序界面交互。我们可以使用顶层窗口和其他小部件为任何 tkinter 应用程序创建对话框。顶层窗口会将内容弹出到所有其他窗口之上。因此,我们可以在顶层窗口上添加更多内容来构建对话框。
示例
在此示例中,我们创建了一个包含两个部分的模式对话框,
- 顶层窗口的初始化。
- 弹出对话框事件的函数定义。
- 在顶层窗口中添加小部件。
- 对话框选项的函数定义。
# 导入所需库
from tkinter import *
from tkinter import ttk
# 创建 tkinter 框架的实例
win = Tk()
# 设置窗口大小
win.geometry("700x350")
style = ttk.Style()
style.theme_use('clam')
# 定义一个函数来实现选择功能
def choice(option):
pop.destroy()
if option == "yes":
label.config(text="Hello, How are You?")
else:
label.config(text="You have selected No")
win.destroy()
def click_fun():
global pop
pop = Toplevel(win)
pop.title("确认")
pop.geometry("300x150")
pop.config(bg="white")
# 创建标签文本
label = Label(pop, text="是否要继续?",
font=('Aerial', 12))
label.pack(pady=20)
# 添加框架
frame = Frame(pop, bg="gray71")
frame.pack(pady=10)
# 添加按钮进行选择
button1 = Button(frame, text="Yes", command=lambda: choice("yes"), bg="blue", fg="white")
button1.grid(row=0, column=1)
button2 = Button(frame, text="No", command=lambda: choice("no"), bg="blue", fg="white")
button2.grid(row=0, column=2)
# 创建一个标签小部件
label = Label(win, text="", font=('Aerial', 14))
label.pack(pady=40)
# 创建一个 Tkinter 按钮
ttk.Button(win, text="Click Here", command=click_fun).pack()
win.mainloop()
输出
当我们运行上述代码时,它将显示一个带有按钮的窗口以打开模式对话框。
单击按钮将打开模式对话框。
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

