使tkinter窗口出现在所有其他窗口上

时间:2009-12-17 00:29:17

标签: python windows focus stack tkinter

#!/usr/bin/env python
# Display window with toDisplayText and timeOut of the window.

from Tkinter import *

def showNotification(notificationTimeout, textToDisplay):

    ## Create main window
    root = Tk()
    Button(root, text=textToDisplay, activebackground="white", bg="white", command=lambda: root.destroy()).pack(side=LEFT)

    root.update_idletasks()
    # Remove window decorations
    root.overrideredirect(1)

    timeOut = int(notificationTimeout*1000) # Convert to ms from s

    ## Run appliction
    root.after(timeOut,root.destroy)
    root.mainloop()

上面的代码会创建一个带有提示的通知。但是在Windows上 - 通知不会自动弹出所有其他当前窗口。必须单击kill按钮(文本),并在第一次对焦,之后根窗口将显示在所有其他窗口上方。

有没有办法让通知自动显示在所有其他窗口之上 - 在Windows上?

似乎在linux上工作得很好(ubuntu 9.10)。

1 个答案:

答案 0 :(得分:7)

根据this message,您应该可以在root.overridedirect(1)之后添加以下内容。这里的快速测试表明它应该适合你。

root.wm_attributes("-topmost", 1)