python - 如何将标签置于 QWizardPage 的中心?

标签 python qt pyqt pyqt4 wizard

我有一个标签:

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/

相关文章:

python - 如何从非 PyQt 类发出信号?

python - Maya 2017 中的 QDialog 模块错误

python - 反射(reflect)Python列表中字符串属性的变化

python - 使用 fast_executemany Python pyodbc 加速 pandas 数据帧的插入

python - 为什么 csv.writer 删除前导零?

python: [try + except] 如何确保执行try下的所有命令?

c++ - 在使用网格布局并将重叠的小部件定位到距窗口边框特定距离的同时,如何重叠 qwidgets?

c++ - g++ 创建进程 : no such file or directory

macos - 酿造,狮子,Qt 4.8.0

Python - PyQt Matplotlib 绘图定位