QWidget 报告大小不正确

问题描述 投票:0回答:1

我有一个程序,我试图在屏幕上将窗口居中。 窗口似乎是我的布局的大小,宽度约为 200 像素,但 QWidget.size() 报告的宽度为 640 像素。

我的代码基本上是将 QVBoxLayout 设置为 QWindow,然后使用 show() 将其设置为可见。 布局是否应该自动向小部件报告大小?有没有办法获取布局的大小?

我尝试激活布局,获取小部件大小为 rect(),但没有结果

这是最小的例子:

python
from PySide2.QtWidgets import *
import sys

class windowClass(QWidget):
    def __init__(self, layout):
        super(windowClass, self).__init__()
        self.setLayout(layout)
        return layout

class layoutContainer:
    def getLayout():
        layout = QVBoxLayout()
        layout.addWidget(QLabel("This is a minimal example"))

app = QApplication([])
        
layout = layoutContainer.getLayout()

window = windowClass(layout)

print(window.size()) # output: PySide2.QtCore.QSize(640, 480) 
window.show()



sys.exit(app.exec_())
python pyside
1个回答
0
投票

供将来参考

我已经查明了问题所在,上面的代码反映了它。 show() 方法将窗口大小设置为默认值以反映布局。 因此, size() 只能在窗口可见后调用

© www.soinside.com 2019 - 2024. All rights reserved.