如何从tkinter调用消息框?

3
我正在使用Python创建一个基于Tkinter的图形用户界面,遇到了一个问题:当我从输入框获取数据时,消息框没有出现。我该如何解决这个问题?
from tkinter import *
import random


win = Tk()
win.title("Sample")
win.resizable(False, False)
win.configure(bg="#767676")

def game():
    entry = Entry_field.get()
    days = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Sunday", "Saturday"]
    randomise = random.choice(days)
    messagebox.showinfo("Ответ", randomise)

Label_field = Label(win, text="Choose your day!", font=("outrun", 10, "bold"))
Label_field.grid(row=0, column=0)

Notification_Label = Label(win, text="Enter your name here", font=("montserrat", 10, "bold"), bg="#EF9A9A")
Notification_Label.grid(row=1, column=0, sticky=W)

Entry_field = Entry(win, width=30)
Entry_field.grid(row=1, column=1)

Button_field = Button(win, text="Press", command=game)
Button_field.grid(row=1, column=2)

win.mainloop()

2
你需要将这行代码放在文件顶部:import tkinter.messagebox as messagebox - Ed Ward
1
将以下代码放在你的代码顶部,一切都会正常工作:from tkinter import messagebox - DaniyalAhmadSE
1个回答

2

您正在尝试使用来自tkinter.messagebox模块的showinfo函数,但尚未导入它。 您需要在代码顶部添加import tkinter.messagebox as messageboxfrom tkinter import messagebox行。这是完整的修复代码:

from tkinter import *
import tkinter.messagebox as messagebox
import random


win = Tk()
win.title("Sample")
win.resizable(False, False)
win.configure(bg="#767676")

def game():
    entry = Entry_field.get()
    days = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Sunday", "Saturday"]
    randomise = random.choice(days)
    messagebox.showinfo("Ответ", randomise)

Label_field = Label(win, text="Choose your day!", font=("outrun", 10, "bold"))
Label_field.grid(row=0, column=0)

Notification_Label = Label(win, text="Enter your name here", font=("montserrat", 10, "bold"), bg="#EF9A9A")
Notification_Label.grid(row=1, column=0, sticky=W)

Entry_field = Entry(win, width=30)
Entry_field.grid(row=1, column=1)

Button_field = Button(win, text="Press", command=game)
Button_field.grid(row=1, column=2)

win.mainloop()

2
我认为使用 from tkinter import messagebox 是更好的方式。 - DaniyalAhmadSE

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接