2017-01-09 48 views

回答

0

我用的QMainWindow的代替QWidget的,然后我重写focusInEventfocusOutEvent事件。

#!/usr/bin/python3 
# -*- coding: utf-8 -*- 

from PyQt5.QtWidgets import QMainWindow, QApplication 
from PyQt5.QtCore import Qt 
from sys import argv, exit 

class Window(QMainWindow): 
    def __init__(self): 
     super(Window, self).__init__() 
     self.setFocusPolicy(Qt.StrongFocus) 

    def focusInEvent(self, event): 
     print('focusInEvent') 
     self.setWindowTitle('focusInEvent') 
     self.showMinimized() 

    def focusOutEvent(self, event): 
     print('focusOutEvent') 
     self.setWindowTitle('focusOutEvent') 
#  self.showMinimized() 

if __name__ == '__main__': 
    app = QApplication([]) 
    w = Window() 
    w.showMinimized() 
    exit(app.exec_()) 
+0

如果你从不显示它,那么使用窗口有什么意义?为什么不使用[系统托盘图标](https://doc.qt.io/qt-5/qsystemtrayicon.html)? – ekhumoro

+0

ekhumoro我用它,但我不写简化代码的代码 – ZiTAL

1
app = QtWidgets.QApplication([]) 
w = QtWidgets.QWidget() 
w.showMinimized() 
+0

如果我按'ALT + TAB'我可以看到有窗口的应用程序,有一些事件捕捉,并把'w.showMinimized()'呢? – ZiTAL

相关问题