2016-06-21 146 views
3

我有一個Tkinter窗口,我需要留在其他任何地方 - 包括全屏窗口。強制Tkinter窗口留在全屏幕之上 - Windows 10

事情我已經嘗試:

root.attributes('-topmost', True)主循環之前 - 不工作

self.root.wm_attributes("-topmost", True)裏面的類 - 不工作

root.overrideredirect(True)主循環之前 - 在Linux上工作僅

主循環之前的root.lift() - 不起作用

最後,我設置root.lift()要重複調用:

class TestingGUI: 
    def __init__(self, root): 
     self.root = root 
     self.EnsureTop() 

    def EnsureTop(self): 
     root.lift() 
     root.after(5000, self.EnsureTop)` 

此作品在某種意義上說,它成功地升起車窗比任何其他的窗戶,我手動切換爲「總在最前面」,例如使用Dexpot,但重要的是它不適用於全屏應用程序。

具體來說,我需要在遊戲中顯示它,因爲它是一款遊戲中的音樂播放器。我很滿意需要重複使用某些命令的解決方案,以確保再次調用窗口。

+0

對不起,如果這個評論有點偏離主題 - 問題本身非常好 - 但我不明白在2016年使用Tkinter的人。爲什麼不使用wxWidgets,PySide,PyQt或PyGtk? – linusg

+2

https://blogs.msdn.microsoft.com/oldnewthing/20110310-00/?p=11253 – TessellatingHeckler

+0

@linusg它是Python的一部分,它在Linux和我已經完成的其他小型項目上工作得很好。當你發表評論時,你會有什麼建議? – heidi

回答

1

正如TessellatingHeckler在評論中指出的那樣,不可能確保窗口停留在另一個全屏窗口之上。我通過結合循環root.lift()並要求我的用戶在無邊界窗口中運行他們的應用程序來解決此問題。