python qt pyqt pyside

python - ¿Cómo hacer un widget en el centro de la pantalla en PySide/PyQt?



(4)

No, es la forma más sencilla. 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());

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

def center(self): qr = self.frameGeometry() cp = gui.QDesktopWidget().availableGeometry().center() qr.moveCenter(cp) self.move(qr.topLeft())


Solo otro ejemplo de "func-style". Si lo usas varias veces.

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

Y cada vez en código:

widget.move(screen_center(widget))


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())