web-dev-qa-db-fra.com

qlabel centrage

J'ai un qlabel L à l'intérieur d'un qwidget W. L est aligné verticalement et horizontalement. Lorsque je redimensionne W, L ne se centre pas.

Est-ce attendu? Qu'est-ce qu'une bonne implémentation pour avoir à nouveau centré L?

18
aqua boy

Pour aligner du texte dans un QLabel en appelant QLabel :: setAlignment fonctionne comme prévu pour moi.
Vous manquez peut-être d'ajouter votre étiquette à une mise en page (afin que votre étiquette soit automatiquement redimensionnée si votre widget est redimensionné). Voir aussi Layout Management . Un exemple minimal:

#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();
}
27
sgibb