【发布时间】:2014-03-19 11:26:27
【问题描述】:
我正在通过 overrideredirect 在 Tkinter 中构建一个带有自定义窗口的应用程序。我已将我自己设计的 X 按钮绑定到下面的函数。使用我的按钮关闭应用程序工作正常,它确实淡出,但几秒钟后窗口重新出现,卡在一个循环中(这就是它的样子)并崩溃。它应该只是退出,这是在我添加淡出循环之前它所做的。有人可以告诉我为什么程序会重新出现然后崩溃,或者在关闭应用程序时提供更好的淡出效果替代方案(我知道有更复杂的工具包,但在这种情况下我需要使用 Tkinter)?
谢谢
def CloseApp(event):
if InProgress==False: #InProgress boolean defined elsewhere in program
if tkMessageBox.askokcancel("Quit","Do you really wish to quit?"):
n=1
while n != 0:
n -= 0.1
QuizWindow.attributes("-alpha", n)
time.sleep(0.02)
Window.destroy() #I've also tried using the quit() method, not that it would make a difference
else:
if tkMessageBox.askokcancel("Quit"," If you quit now you will lose your progress and have to start again. Are you sure you want to quit?"):
n=1
while n != 0:
n -= 0.1
QuizWindow.attributes("-alpha", n)
time.sleep(0.02)
Window.destroy()
【问题讨论】:
-
如果您能够提供任何屏幕截图或错误代码(如果有),那么人们最终可能会更容易帮助您。因为它可以更好地指示问题可能是什么。
-
没有错误代码。省去制作视频的麻烦,在应用程序运行时,按下关闭按钮会导致窗口淡出。然后 5 秒后,窗口重新出现并且没有响应。在 Windows 7 下,它是白屏,点击时 Windows 返回“pythonw.exe 无响应”。