在屏幕中间显示QMainwindow

| 我想在屏幕中间显示我的项目主窗口。当我调用\“ self.show()\”时,窗口将显示在屏幕中间。
已邀请:
首先,我建议不要尝试在用户上强制设置窗口位置,而让系统的窗口管理器决定应该将窗口移到哪里。如果您真的坚持自己定位(也许您正在为信息亭编程),则可以在上一个关于stackoverflow的问题中找到一些信息。 此处讨论了一种更为优雅的计算方法。 在进行此计算时,重要的是,它必须在正确的时间,在Qt调整大小后且在屏幕上显示之前正确地完成。一种可能有用的方法是创建一个一次性计时器,并在计时器的插槽中进行屏幕定位。
我知道您已经解决了这个问题,但对于有相同问题的人,我将作此答复。我发布它主要是因为您要求pyQt,而另一个答案是Qt(C ++)。 我在这里找到了解决方法:https://bashelton.com/2009/06/pyqt-center-on-screen/ 非常简单,可以完美传输,我传输。
class ExampleWindow (QtGui.QMainWindow):
    def __init__ (self, parent=None):
        \'\'\'constructor\'\'\'
        QtGui.QMainWindow.__init__(self, parent)
        self.setGeometry(0, 0, 650, 550)
        self.setWindowTitle(\"My Example Application\")
        self.centerOnScreen()

    def centerOnScreen (self):
        \'\'\'centerOnScreen()
Centers the window on the screen.\'\'\'
        resolution = QtGui.QDesktopWidget().screenGeometry()
        self.move((resolution.width() / 2) - (self.frameSize().width() / 2),
                  (resolution.height() / 2) - (self.frameSize().height() / 2)) 
祝好运!

要回复问题请先登录注册