Я использую QMainWindow вместо QWidget, то я переопределить focusInEvent и focusOutEvent события.
#!/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_())
В чем смысл использования окна, если вы его никогда не показываете? Почему бы просто не использовать значок [значок в системном трее] (https://doc.qt.io/qt-5/qsystemtrayicon.html)? – ekhumoro
ekhumoro Я использовал его, но я не пишу код для упрощения кода – ZiTAL