Comment faire un widget dans le centre de l'écran dans PySide / PyQt?
Question
Ce code fonctionne, mais je me demande s'il y a une façon plus simple:
def center(self):
qr = self.frameGeometry()
cp = gui.QDesktopWidget().availableGeometry().center()
qr.moveCenter(cp)
self.move(qr.topLeft())
La solution
Non, c'est la façon la plus simple. Voici un extrait que je l'ai utilisé en C ++:
QRect desktopRect = QApplication::desktop()->availableGeometry(this);
QPoint center = desktopRect.center();
move(center.x() - width() * 0.5, center.y() - height());
Autres conseils
il suffit d'ajouter cette ligne à vos fenêtres principales:
self.move(QtGui.QApplication.desktop().screen().rect().center()- self.rect().center())
self.move(QDesktopWidget().availableGeometry().center() - self.frameGeometry().center())
Juste un autre exemple « Fonction de style ». Si vous utilisez plusieurs fois.
screen_center = lambda widget: QApplication.desktop().screen().rect().center()- widget.rect().center()
Et chaque fois dans le code:
widget.move(screen_center(widget))
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow