這不是Python tkinter mainloop 在關閉視窗時不退出的副本
我有一個基于 tkinter 的應用程式。我有時在使用 X 按鈕關閉視窗后觀察到,代碼不會執行超過該mainloop()行。這種情況完全隨機發生,大約有 10% 的幾率。其余時間,它就像一個魅力。請問有什么辦法可以強制執行。正如我所說,代碼塊就mainloop()行了,因此sys.exit()在它之后呼叫無濟于事。
我正在使用 Python 3.9.8。
編輯:downvoters 請理解這不是 100% 可重復的,因此提供任何型別的“可重復示例”是沒有意義的。如果你只是想要一些可能引發問題的東西,這里是:
from tkinter import *
root = Tk()
Label(root, 'hi').pack()
mainloop()
print('exited')
uj5u.com熱心網友回復:
我的第一個想法是使用root.mainloop()而不是tkinter.mainloop(). 如果您使用多個視窗,這會有所不同。
也就是說,我很久以前確實在一些舊作業系統上看到過這一點。一直沒弄明白原因,只好自己寫了退出函式,如下:
import tkinter as tk
def _quit():
root.quit()
root.destroy()
root = tk.Tk()
root.protocol("WM_DELETE_WINDOW", _quit)
tk.Label(root, 'hi').pack()
root.mainloop()
print('exited')
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/357573.html
