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

2024-10-01 00:21:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我有个标签:

self.label = QtLabel(self)

在VBoxLayout中。在

我想在QWizardPage的中心设置,不管窗口变大。我设法使它水平居中:

^{pr2}$

但我似乎也无法使它垂直居中。我试过了

self.label.setAlignment(QtCore.Qt.AlignVCenter)

以及:

self.label.setAlignment(QtCore.Qt.AlignCenter | AlignVCenter)  

还有一些我现在记不起来的事情(如果我记得的话,我会编辑的)。{最小值在设定尺寸后似乎有问题。我尝试了,将MinimumHeight和MaximumHeight设置为200。这使标签大致居中,但它不适应窗口高度的变化,只适应其宽度。在

如何将标签直接居中放置在页面中间?在


Tags: self水平标签qt中心label设法pr2
2条回答

在两个间隔项之间添加标签。您的垂直布局也应该在其父窗口小部件中布局,这样它就可以获得父控件的全部大小。在

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);

如果您不想设置最小大小策略,可以使用QWidgets执行以下操作:

QWizardPage.__init__(self)

    intro_text = "Some text that needs to be centered..."

    self.introVBox = QVBoxLayout(self)

    self.sizer_top = QWidget()
    self.sizer_top.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
    self.sizer_bottom = QWidget()
    self.sizer_bottom.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)

    self.label = QLabel(self)
    self.label.setText(intro_text)
    self.label.setAlignment(QtCore.Qt.AlignCenter)
    self.introVBox.addWidget(self.sizer_top)
    self.introVBox.addWidget(self.label)
    self.introVBox.addWidget(self.sizer_bottom)
    self.setLayout(self.introVBox);

相关问题 更多 >