центрирование - PullRequest
       27

центрирование

16 голосов
/ 22 марта 2012

У меня есть qlabel L внутри qwidget W. L выровнен по вертикали и горизонтали. Когда я изменяю размер W, L не центрируется.

Это ожидается? Какая хорошая реализация, чтобы снова центрировать L?

1 Ответ

25 голосов
/ 22 марта 2012

Чтобы выровнять текст в 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();
}
...