У меня есть class Duplicates
, который проверяет наличие дубликатов в 40 словах.python tkinter Toplevel .destroy() vs .quit() не работает по назначению
У меня есть class Window
, который создает и запускает главное окно, где я отправляю результат.
У меня есть class popWindow
, который создает окно Toplevel при запросе пользователя о том, что делать с возможным двойным.
Моя проблема заключается в том, чтобы закрыть popWindow
после отправки выбора.
версия, у меня есть, что фактические запуски и сообщения aswer (текст с отмеченными дубликатами) использует quit для завершения окна (что означает, что всплывающее окно все еще существует) или просто иметь несколько всплывающих окон, пока вы не закончите.
class Duplicates:
def markWord(self):
self.appendMarkedWord(self.word)
self.checked.append(self.word)
self.pop.topLevel_exit()
return ""
class popUpWindow:
temp = Button(self, font = 8,
text = "Allowed this run only",
command = app.newFile.markWord
)
temp.place(x = 178,
y = 55
)
, если я вместо того, чтобы использовать .destroy()
в окно, но происходил останов программы останавливается, и что хуже.
Как мне обойти это, чтобы он закрывал окно, но все еще продолжает запускать программу?
Хорошо, после многих часов казалось, что реальной проблемой был destroy() не останавливал мой popUpWindow.mainloop(), поэтому я теперь изменил код выхода, чтобы сначала сделать quit(), а затем destroy(). Это не то, что я видел как примеры вообще, и мне кажется, что destroy() на topplevel mainloop не заканчивает его (destroy() отлично работает на моем root.mainloop).
def topLevel_exit(self):
self.pop.quit()
self.pop.destroy()
я запустить приложение с сделать мое окно CLA ss, и оттуда я делаю объект Duplicates или, если быть более точным, у меня есть None в __init__, но он создается при нажатии кнопки new file. Я создаю экземпляр popwindow внутри Duplicates, поэтому я не понимаю, почему это перехватило основное окно. Я с тех пор пытался использовать popWindow как метод внутри окна, и он все равно отключается, как только я уничтожаю popwindow. Должно быть, я не понимаю ни tkinter, ни потоки python, ни то и другое. – enno4859
@ enno4859: Вы используете потоки? Вы звоните в mainloop более одного раза? Это будут важные детали, которые вы оставили вне своего вопроса. –
да второй главный овер для верхнего окна, так что он будет ждать ввода от пользователя. – enno4859