Pregunta

Este código funciona, pero me pregunto si hay alguna manera más simple:

def center(self):
    qr = self.frameGeometry()
    cp = gui.QDesktopWidget().availableGeometry().center()
    qr.moveCenter(cp)
    self.move(qr.topLeft())
¿Fue útil?

Solución

No, es la forma más simple. Aquí hay un fragmento que he usado en C ++:

  QRect desktopRect = QApplication::desktop()->availableGeometry(this);
  QPoint center = desktopRect.center();

  move(center.x() - width() * 0.5, center.y() - height());

Otros consejos

Simplemente agregue esta línea a sus ventanas principales:

self.move(QtGui.QApplication.desktop().screen().rect().center()- self.rect().center())
self.move(QDesktopWidget().availableGeometry().center() - self.frameGeometry().center())

Solo otro ejemplo de "estilo FUNC". Si lo usas varias veces.

screen_center = lambda widget: QApplication.desktop().screen().rect().center()- widget.rect().center()

Y cada vez en el código:

widget.move(screen_center(widget))
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top