40 단어 내에서 중복을 검사하는 class Duplicates
이 있습니다.python tkinter Toplevel .destroy()와 .quit()가 의도 한대로 작동하지 않습니다.
나는 class Window
을 생성하고 메인 윈도우를 실행하여 결과를 게시합니다.
사용자에게 가능한 이중으로 수행 할 작업을 묻는 경우 최상위 창을 만드는 class popWindow
이 있습니다.
일단 선택 사항이 제출되면 popWindow
을 닫는 것이 좋습니다.
버전 실제로 버전이 표시되고 aswer (표시된 중복 텍스트가있는 텍스트)를 사용하면 창을 종료하여 팝업이 계속 나타나거나 단순히 완료 될 때까지 여러 개의 팝업이 표시됩니다.
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()을 중지시키지 않았으므로 이제는 종료 코드를 변경 한 다음 destroy()를 수행하도록 변경했습니다. 이것은 내가 예제로 보았던 것이 아니며 최상위 mainloop의 destroy()가 그것을 종료하지 않는 것으로 보인다. destroy()는 내 root.mainloop에서 잘 작동한다.)
def topLevel_exit(self):
self.pop.quit()
self.pop.destroy()
을 선호하는 내 창 CIA 요원을 사용하여 응용 프로그램을 시작 작동합니다 ss 그리고 거기에서 나는 객체를 Duplicates로 만들거나 좀 더 정확하게하기 위해 __init__에 None을 넣었습니다. 그러나 새로운 파일을 만들 때 만들어졌습니다. Duplicates 내에서 popwindow의 인스턴스를 생성하여 주 윈도우가 인터럽트되는 이유를 이해할 수 없습니다. 이후 popWindow를 윈도우 내의 메소드로 사용하려고 시도했지만 popwindow를 파괴하자마자 종료됩니다. 필자는 tkinter, python threading 또는 둘다를 이해하지 못한다. – enno4859
@ enno4859 : 스레드를 사용하고 있습니까? 메인 루프를 두 번 이상 부르시겠습니까? 그것들은 당신이 당신의 질문에서 빠뜨린 중요한 세부 사항입니다. –
예 사용자로부터의 입력을 기다릴 수 있도록 상단 창에 대한 두 번째 메인 루프입니다. – enno4859