У меня есть qlabel L внутри qwidget W. L по вертикали и по горизонтали.
Когда я изменяю размер W, L не центрируется.
Ожидается ли это?
Какая хорошая реализация, чтобы снова центрировать L?
Ответ 1
Чтобы выровнять текст в QLabel, вызвав QLabel:: setAlignment, работает как ожидалось для меня.
Возможно, вам не хватает добавить ярлык к макету (так что ваш ярлык будет автоматически изменяться, если ваш виджет будет изменен). См. Также Управление макетами. Минимальный пример:
#include <QApplication>
#include <QHBoxLayout>
#include <QLabel>
#include <QWidget>
int main(int argc, char* argv[]) {
QApplication app(argc, argv);
QLabel* label=new QLabel("Hello World!");
label->setAlignment(Qt::AlignCenter);
QWidget* widget=new QWidget;
// create horizontal layout
QHBoxLayout* layout=new QHBoxLayout;
// and add label to it
layout->addWidget(label);
// set layout to widget
widget->setLayout(layout);
widget->show();
return app.exec();
}