Python >> Tutoriel Python >  >> Python GUI >> PyQt GUI

pyQt5 modifier les drapeaux de la fenêtre principale

Chaque appel de setWindowFlags remplacera complètement les paramètres actuels, vous devez donc définir tous les drapeaux en même temps. De plus, vous devez inclure le CustomizeWindowHint flag, sinon tous les autres indices seront ignorés. Les éléments suivants fonctionneront probablement sous Windows :

    self.setWindowFlags(
        QtCore.Qt.Window |
        QtCore.Qt.CustomizeWindowHint |
        QtCore.Qt.WindowTitleHint |
        QtCore.Qt.WindowCloseButtonHint |
        QtCore.Qt.WindowStaysOnTopHint
        )

Cependant, il est très peu probable que cela fonctionne sur toutes les plateformes. "Indice" signifie vraiment cela. Les gestionnaires de fenêtres sont totalement libres d'ignorer ces drapeaux et il n'y a aucune garantie qu'ils se comporteront tous de la même manière.

PS :

Il n'est pas possible de définir les drapeaux de fenêtre dans Qt Designer.


Je proposerais une solution différente, car elle conserve les drapeaux existants. La raison de le faire est de ne PAS se mêler aux préréglages spécifiques à l'interface utilisateur (par exemple, une boîte de dialogue n'a pas par défaut un bouton "agrandir" ou "réduire").

self.setWindowFlags(self.windowFlags() # reuse initial flags
    & ~QtCore.Qt.WindowContextHelpButtonHint # negate the flag you want to unset
)