我有一个标签:
self.label = QtLabel(self)
位于 VBoxLayout 内部。
我想将其设置在 QWizardPage 的中心,无论窗口大小如何。我设法让它水平居中:
self.label.setAlignment(QtCore.Qt.AlignCenter)
但我似乎也无法让它垂直居中。我已经尝试过
self.label.setAlignment(QtCore.Qt.AlignVCenter)
和:
self.label.setAlignment(QtCore.Qt.AlignCenter | AlignVCenter)
还有一些我现在不记得的其他事情(如果我记得的话我会编辑)。看完this answer问题似乎与设置最小和最大尺寸有关。我尝试过,将MinimumHeight 和MaximumHeight 设置为200
。这使标签大致居中,但它不适应窗口高度的变化,只适应窗口宽度的变化。
如何将此标签直接置于页面中间?
最佳答案
在两个间隔项之间添加标签。您的垂直布局也应该布置在其父窗口小部件中,以便它占据父窗口的完整大小。
QSpacerItem* verticalSpacer1 = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
label = new QLabel(Form);
label->setAlignment(Qt::AlignCenter);
QSpacerItem* verticalSpacer2 = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
verticalLayout->addItem(verticalSpacer1);
verticalLayout->addWidget(label);
verticalLayout->addItem(verticalSpacer2);
关于python - 如何将标签置于 QWizardPage 的中心?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30179655/