Как сделать виджет в центре экрана в PySide/PyQt? Этот код работает, но мне интересно, есть ли более простой способ: def center(self): qr = self.frameGeometry() cp = gui.QDesktopWidget().availableGeometry().center() qr.moveCenter(cp) self.move(qr.topLeft()) Ответ 1 Нет, это самый простой способ. Вот фрагмент, который я использовал в С++: QRect desktopRect = QApplication::desktop()->availableGeometry(this); QPoint center = desktopRect.center(); move(center.x() - width() * 0.5, center.y() - height()); Ответ 2 просто добавьте эту строку в свои главные окна: self.move(QtGui.QApplication.desktop().screen().rect().center()- self.rect().center()) Ответ 3 self.move(QDesktopWidget().availableGeometry().center() - self.frameGeometry().center()) Ответ 4 Еще один пример "func-style". Если вы используете его несколько раз. screen_center = lambda widget: QApplication.desktop().screen().rect().center()- widget.rect().center() И каждый раз в коде: widget.move(screen_center(widget))
Ответ 1 Нет, это самый простой способ. Вот фрагмент, который я использовал в С++: QRect desktopRect = QApplication::desktop()->availableGeometry(this); QPoint center = desktopRect.center(); move(center.x() - width() * 0.5, center.y() - height());
Ответ 2 просто добавьте эту строку в свои главные окна: self.move(QtGui.QApplication.desktop().screen().rect().center()- self.rect().center())
Ответ 4 Еще один пример "func-style". Если вы используете его несколько раз. screen_center = lambda widget: QApplication.desktop().screen().rect().center()- widget.rect().center() И каждый раз в коде: widget.move(screen_center(widget))