你知道一個聰明的方式來隱藏或以任何其他方式擺脫出現的根窗口,由Tk()
打開?我只想使用普通的對話框。如何擺脫Python Tkinter根窗口?
我應該跳過對話框並將所有組件放在根窗口中嗎?這是可能的還是可取的?還是有更聰明的解決方案?
你知道一個聰明的方式來隱藏或以任何其他方式擺脫出現的根窗口,由Tk()
打開?我只想使用普通的對話框。如何擺脫Python Tkinter根窗口?
我應該跳過對話框並將所有組件放在根窗口中嗎?這是可能的還是可取的?還是有更聰明的解決方案?
很可能絕大多數基於tk的應用程序都將所有組件放在默認根窗口中。這是最方便的方式,因爲它已經存在。選擇隱藏默認窗口並創建自己的是一件非常好的事情,但它只需要一點額外的工作。
要獲得關於如何隱藏它的具體問題,使用根窗口的withdraw方法:
import Tkinter as tk
root = tk.Tk()
root.withdraw()
如果您想再次使窗口可見,調用deiconify(或wm_deiconify)方法。
root.deiconify()
一旦你與對話完成後,你可以用destroy方法的所有其他Tkinter的部件一起銷燬根窗口:
root.destroy()
使用主窗口的竅門。謝謝! – 2009-09-11 14:57:31
因此,在StackOverflow中有使用.destroy(),tkinter.Toplevel(self).destroy(),quit(),tkinter.Toplevel(self).quit(),withdraw(),iconify()可供選擇的解決方案。尼斯。除了沒有一個工作...我做了「top_lev = tkinter.Toplevel(label); label.master.destroy(); label.destroy(); top_lev.destroy(); root = tkinter.Tk(); root.withdraw(); root.destroy()「,它像一個魅力(涉及一些諷刺)。 – 2017-03-21 08:03:47
@deusexmachina:如果你使用它們,它們都會工作,但它們都有不同的目的。雖然'.quit()'和'.destroy()'實際上是相同的。 – 2017-03-21 11:16:41
我還沒有測試,因爲我沒有任何Python/TKinter環境,但試試這個。
在純Tk中有一種名爲「wm」的方法來管理窗口。在那裏你可以做一些類似「wm withdraw .mywindow」的地方,其中「.mywindow」是一個頂層。如果您想再次使窗口可見,調用deiconify(或wm_deiconify)方法
root = Tkinter.Tk()
root.withdraw() # won't need this
:
在Tkinter的,你應該能夠做類似的東西。
root.deiconify()
在OSX,圖標化似乎更好的工作:
root = Tkinter.Tk()
root.iconify()
如果您不想在創建窗口時出現「閃光燈」,請使用以下輕微變化:
import Tkinter as tk
root = tk.Tk()
root.overrideredirect(1)
root.withdraw()
圖片鏈接無效。 – 2009-09-10 17:08:42