Как установить выравниваемую по центру QLabel на панель инструментов в Qt

Вопрос: Я новичок в 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); Вышеуказанный код отображает текст, но не в центре. Он отображается

Вопрос:

Я новичок в 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);

Оцените статью
Добавить комментарий