Как установить QLabel по центру на панель инструментов в Qt - PullRequest
0 голосов
/ 04 июля 2018

Я новичок в qt и изучаю его. Я хочу, чтобы текст, выровненный по центру, на панели инструментов моего Mainwindow. Ниже приведен мой код в конструкторе 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);

Приведенный выше код отображает текст, но не в центре. Он отображается слева. Чего мне не хватает? Любая помощь будет очень полезна.

1 Ответ

0 голосов
/ 04 июля 2018
label->setAlignment(Qt::AlignHCenter);

Это говорит метке (по горизонтали) центрировать текст внутри себя.

layout->addWidget(label);

Этот аргумент по умолчанию расширен до

layout->addWidget(label, 0);

Где 0 - это коэффициент растяжения метки в этом макете. Ноль означает, что вашему ярлыку будет предоставлено столько места, сколько нужно для правильного отображения, но не более того. Таким образом, ваша метка такая же большая, как ваш текст, она центрирована по тексту, но, поскольку она находится в QHBoxLayout, она отображается с левой стороны в пределах вашей панели. Если в макете панели нет других виджетов, вы можете установить коэффициент растяжения равным 1, чтобы метка заполнила макет, тогда ваш текст будет отображаться в центре.

layout->addWidget(label, 1);
...