我有一个程序,我试图在屏幕上将窗口居中。 窗口似乎是我的布局的大小,宽度约为 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_())
供将来参考
我已经查明了问题所在,上面的代码反映了它。 show() 方法将窗口大小设置为默认值以反映布局。 因此, size() 只能在窗口可见后调用