Вопрос:
Я новичок в 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);
Вышеуказанный код отображает текст, но не в центре. Он отображается слева. Что мне не хватает? Любая помощь будет действительно полезна.
Лучший ответ:label->setAlignment(Qt::AlignHCenter);
Это означает, что метка (по горизонтали) центрирует текст сам по себе.
layout->addWidget(label);
Это расширенный аргумент по умолчанию для
layout->addWidget(label, 0);
Где 0 – коэффициент растяжения метки в этом макете. Zero означает, что вашей метке будет предоставлено столько места, сколько нужно для отображения, но не более того. Таким образом, ваш ярлык так же велик, как и ваш текст, имеет ли он текст в центре, но поскольку он находится на QHBoxLayout, он отображается слева на панели. Если в вашем макете нет других виджетов, вы можете установить коэффициент растяжения на 1, чтобы метка заполнила макет, затем текст будет показан в центре.
layout->addWidget(label, 1);