簡體   English   中英

如何在 mac 上結束 Tkinter python 模塊,以便在程序完成后不必強制退出 python 啟動器?

[英]How do I end a Tkinter python module on mac so I don't have to force quit python launcher after the program is done?

這是我的代碼:

from Tkinter import *

app = Tk()

app.title('example')

app.geometry('400x300+200+200')

b = Button(app, text = "quit", command = app.quit)

b.pack()

app.mainloop()

當我運行這個 python 啟動器時會彈出,當我關閉窗口或按下退出按鈕時,窗口關閉,python 空閑說它完成了,但 python 啟動器變得沒有響應,我必須強制退出它才能讓 python 啟動器退出並從碼頭。

是否有我必須使用的命令才能正確退出代碼?

您正在尋找sys.exit()

這是一個有效的例子

from tkinter import *
import sys
class YourApp(Tk):
    def quit_and_close(self):
            app.quit()
            sys.exit()


app = YourApp()

app.title('example')

app.geometry('400x300+200+200')

b = Button(app, text = "quit", command = app.quit_and_close)

b.pack()

app.mainloop()

我一直在尋找,似乎這可能是一個已知的錯誤。

我得到的最好的回應來自:

 window = tk.Tk()
 window.protocol("WM_DELETE_WINDOW", window.destroy)

這允許您使用小 x 關閉窗口。 這會結束 spyder 控制台窗口中的進程,但不會結束 mac 上應用程序欄中的進程。 那一定還是強行退出。

我嘗試使用這樣的函數來破壞窗口並使用 sys 退出,但這只會再次導致凍結。

def CloseProgram():
    sys.exit()
    window.destroy()

嘗試使用終端而不是 IDE。 我發現 IDE 非常挑剔,並且正確使用終端會退出並退出 Python 啟動器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM