下一個在How to make a Tkinter window jump to the front?讓Tkinter的跳到前方 - 但只是相對的Tkinter程序
問我想有一個頂層窗口(我用它來瀏覽我的其他主窗口)的一個問題總是在前面。 但是我希望它只在我的tkinter程序的各個窗口的前面。
chwin.wm_attributes("-topmost",True)
解決方案將此窗口強制放置在桌面的每個窗口之上(至少在這裏:Linux fedora13)。
你知道任何其他解決方案嗎?
下一個在How to make a Tkinter window jump to the front?讓Tkinter的跳到前方 - 但只是相對的Tkinter程序
問我想有一個頂層窗口(我用它來瀏覽我的其他主窗口)的一個問題總是在前面。 但是我希望它只在我的tkinter程序的各個窗口的前面。
chwin.wm_attributes("-topmost",True)
解決方案將此窗口強制放置在桌面的每個窗口之上(至少在這裏:Linux fedora13)。
你知道任何其他解決方案嗎?
最後,lift()方法調用無法正常工作。當我使用它並覆蓋窗口時,我想保持在最前面,這個調用只是讓窗口的圖標在任務欄中突出顯示(就像在不可見窗口中有某些動作時發生的那樣),但窗口沒有解除。
Linux小故障?我不知道
我終於發現了一個辦法做到這一點:只要致電wm_transient從具有留在上面的窗口:
secondarywindow.wm_transient(root)
這樣,secondarywindow始終高於根,但它可以被我在桌面上使用的任何其他程序遮擋
你可以在新窗口中的每個創建後解除你想要的窗口:
import Tkinter as tk
root = tk.Tk()
tk.Label(root, text="I'm the root").grid()
main = tk.Toplevel(root)
tk.Label(main, text="I'm the one you want").grid()
def bring_to_front():
"""This function was made to demonstrate"""
tk.Toplevel(root)
# Each time a new window is created, lift the one you want above it.
main.lift()
root.after(5000, bring_to_front)
root.after(1, bring_to_front)
root.mainloop()
通知你想始終窗口如何保持專注(位於頂部),不管有多少Toplevels製成。儘管如此,它不會超出其他應用程序(僅限於腳本創建的窗口)。
你甚至可以使用的Toplevel
的iconify
方法你不想在上面,現在每個窗口最小化。
請注意,我在Python 2.7中對此進行了處理。如果你沒有/使用Python,只需應用其他地方的腳本中給出的原則。