1

我是 qt 的新手并正在探索它。我希望在主窗口的工具栏中有一个居中对齐的文本。下面是我在 MainWindow 构造函数中的代码:

QLabel* label=new QLabel("Hello World");
label->setAlignment(Qt::AlignHCenter);

QHBoxLayout *layout = new QHBoxLayout();
layout->addWidget(label);

QWidget* wid = new QWidget;
wid->setLayout(layout);

ui->mainToolBar->addWidget(wid);

上面的代码显示文本,但不在中心。它显示在左侧。我错过了什么?任何帮助都会非常有帮助。

4

1 回答 1

3
label->setAlignment(Qt::AlignHCenter);

这告诉标签(水平)将文本置于自身中心。

layout->addWidget(label);

默认参数扩展为

layout->addWidget(label, 0);

其中 0 是此布局中标签的拉伸因子。零意味着您的标签将获得正确显示所需的空间,但仅此而已。所以你的标签和你的文本一样大,它的文本居中,但由于它在 QHBoxLayout 上,它显示在你的栏的左侧。如果您的栏布局中没有其他小部件,您可以将拉伸因子设置为 1 以使标签填充布局,然后您的文本将显示在中心。

layout->addWidget(label, 1);
于 2018-07-04T13:02:47.820 回答