Второе всплывающее окно появляется при открытии текстового поля - PullRequest
1 голос
/ 23 мая 2019

У меня есть некоторый код, который открывает текстовое поле, чтобы пользователь мог ввести EAN, а затем он очищает сеть. Все работает нормально, за исключением того, что по какой-то причине загадочное второе текстовое поле открывается с оригинальным, и если вы не используете его для закрытия программы, оно перестает отвечать.

class MyDialog:
    def __init__(self, parent):     #Pop-up textbox

        top = self.top = Toplevel(parent)

        Label(top, text="Product EAN").pack()       #pop-up box text

        self.e = Entry(top, cursor = "xterm", width=25)     #Input textbox
        self.e.pack(padx=40)

        b = Button(top, text="Submit", command=self.ok, cursor = "hand2")   #Submit button for pop-up box
        b.pack(pady=5)

....


root = Tk()
d = MyDialog(root)
root.wait_window(d.top)

Это весь код, который нужно делать с текстовыми полями - self.ok является шабером, поэтому не имеет значения для этой проблемы. Может ли кто-нибудь объяснить мне или помочь мне решить проблему, поскольку я не понимаю, почему из этого получена следующая картина.

Double textbox?

Заранее спасибо.

1 Ответ

1 голос
/ 23 мая 2019

Проблема в том, что вы открываете окно Tk(), а затем другое, TopLevel() окно поверх этого, если все, что вам нужно - это одно окно, вы просто используете окно Tk(). (Проблема немного неясна, но я предполагаю, что вы спрашиваете об этом).

Чтобы это исправить, вы можете просто удалить окно TopLevel(). Вот так:

class MyDialog:
    def __init__(self, parent):     #Pop-up textbox

        Label(parent, text="Product EAN").pack()       #pop-up box text

        self.e = Entry(parent, cursor = "xterm", width=25)     #Input textbox
        self.e.pack(padx=40)

        b = Button(parent, text="Submit", command=self.ok, cursor = "hand2")   #Submit button for pop-up box
        b.pack(pady=5)

root = Tk()
d = MyDialog(root)
root.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...