2017-01-09 2 views

Répondre

0

J'utilise QMainWindow au lieu de QWidget, puis-je remplacer la focusInEvent et focusOutEvent événements.

#!/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

Quel est le point d'utiliser une fenêtre si vous ne l'affichez jamais? Pourquoi ne pas simplement utiliser une [icône de la barre d'état système] (https://doc.qt.io/qt-5/qsystemtrayicon.html)? – ekhumoro

+0

ekhumoro Je l'ai utilisé mais je n'écris pas le code pour simplifier le code – ZiTAL

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

Si je pousse 'ALT + TAB' je peux voir l'application avec fenêtre, il y a un événement pour attraper et mettre le' w.showMinimized() 'aussi? – ZiTAL