2016-06-21 35 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()并要求我的用户在无边界窗口中运行他们的应用程序来解决此问题。