什么是实现自定义弹出 Tkinter 对话框的正确方法?
Tkinter 有许多内置的函数和模块,在 Python 中已经实现。Tkinter 中的 MessageBox 模块是其中之一,只需使用其相关函数就可以在任何应用程序中使用。这些包的唯一限制是我们无法修改或更改 MessageBox 模板。因此,为了实现自定义弹出消息框,我们可以按照以下步骤进行操作:
- 创建一个按钮并添加一个命令来定义它的一个函数。
- 定义一个函数来创建一个 Toplevel 窗口并在其中添加其他小部件。
- 在 Toplevel 窗口中添加按钮和确认标签文本。
- 将按钮命令添加到交互式地在主窗口中显示一些消息。
示例
# 导入所需库
from tkinter import *
from tkinter import ttk
# 创建 tkinter 框架实例
win = Tk()
# 设置窗口大小
win.geometry("700x250")
# 定义一个实现选择功能的函数
def choice(option):
pop.destroy()
if option == "yes":
label.config(text="你好,你怎么样?")
else:
label.config(text="你选择了 No")
def click_fun():
global pop
pop = Toplevel(win)
pop.title("确认")
pop.geometry("700x250")
pop.config(bg="green3")
# 创建一个 Label 文本
label = Label(pop, text="你想要继续吗?", bg="green3", fg="white", font=('Aerial', 12))
label.pack(pady=20)
# 添加一个 Frame
frame = Frame(pop, bg="green3")
frame.pack(pady=10)
# 添加用于进行选择的按钮
button1 = Button(frame, text="是",
command=lambda: choice("yes"), bg="green")
button1.grid(row=0, column=1)
button2 = Button(frame, text="否",
command=lambda: choice("no"), bg="green")
button2.grid(row=0, column=2)
# 创建一个 Label 小部件
label = Label(win, text="", font=('Aerial', 14))
label.pack(pady=40)
# 创建一个 Tkinter 按钮
ttk.Button(win, text="点击这里", command=click_fun).pack()
win.mainloop()
输出
执行上述代码将显示一个带有一个按钮的窗口。
当我们点击按钮时,它会显示一个自定义弹出消息框。