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
)