Как позвонить в ящик сообщений из Ткинтера? - PullRequest
2 голосов
/ 19 февраля 2020

Я создаю GUI на основе Tkinter в Python, и у меня проблема: окно сообщения не появляется, когда я получаю данные из виджета Entry. Как я могу решить это?

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()

1 Ответ

1 голос
/ 19 февраля 2020

Вы пытаетесь использовать функцию showinfo из модуля tkinter.messagebox, но не импортировали ее. Вам нужно добавить строку import tkinter.messagebox as messagebox или from 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...