2013-07-03 75 views
0

我正在用PyQt4編寫一個小應用程序。窗口如果顯示桌面,但不能在其他窗口(Qt)上保持最佳狀態

使用「WindowStaysOnTopHint」我可以使應用程序的窗口停留在其他窗口的頂部。現在我想單擊顯示桌面的Windows7的右下角按鈕,最小化所有內容。但程序(一個筆記應用程序)應始終保持可見,而不是最小化。

使用「WindowStaysOnTopHint」它可以工作,但它也保持在每隔一個窗口之上,例如, Firefox,這不是我想要的。

是否有一個特殊的命令,或者我可以過濾某種程度上的「顯示桌面」按鈕?

+0

bump ...沒有人有想法嗎? – user2366975

回答

0

您可以重寫eventFilter()方法,使得如果用戶關注(單擊窗口外的其他內容),則可以禁用stop標誌上的停留。

class MyWidget(QWebView): 
    def __init__(self): 
     super(MyWidget, self).__init__() 
     self.installEventFilter(self) 

    def eventFilter(self, qobject, qevent): 
     qtype = qevent.type() 
     if qtype == QEvent.FocusOut: 
      #disable the stay on top flag, by setting some other flag 
      self.setWindowFlags(WindowCloseButtonHint) 
      return True 
     return super(MyWidget, self).eventFilter(qobject, qevent)