2012-03-22 13 views
14

Tengo una q etiqueta L dentro de un qwidget W. L está alineado vertical y horizontalmente. Cuando cambio el tamaño W, L no se centra.qlabel centrando

¿Se espera esto? ¿Cuál es una buena implementación para tener L centrada de nuevo?

Respuesta

21

Para alinear el texto en un QLabel llamando al QLabel::setAlignment funciona como esperaba para mí.
Tal vez se pierda agregar su Etiqueta a un Diseño (por lo que su etiqueta se redimensionará automáticamente si se cambia el tamaño de su artilugio). Consulte también Layout Management. Un ejemplo mínimo:

#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(); 
} 
+1

Amigo, muchas gracias. No estaba haciendo ninguna gestión de diseño antes de leer tu respuesta –

Cuestiones relacionadas