2012-03-22 50 views
14

qwidget W內有一個qlabel L.L垂直和水平對齊。 當我調整W的大小時,L不會居中。qlabel居中

這是預期嗎? 有什麼好的實現讓L再次居中?

回答

21

要調用QLabel中的文本,請致電QLabel::setAlignment按預期的方式工作。
也許你錯過了將你的標籤添加到佈局(所以如果你的小部件被調整大小,你的標籤會自動調整大小)。另見Layout Management。一個簡單的例子:

#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

老兄,非常感謝。在我閱讀你的答案之前,我沒有做過任何佈局管理 – 2012-03-28 07:33:45