2011-04-20 85 views
3

我正在嘗試使用Qt將標籤添加到主窗口。這裏是一塊代碼:將標籤添加到小部件

int main(int argc, char *argv[]) { 
    QApplication app(argc, argv); 
    QWidget Main_Window; 
    QPixmap Image; 

    Image.load("1837.jpg"); 

    QLabel i_label; 
    i_label.setPixmap(Image); 
    i_label.show(); 

    QPushButton Bu_Quit("Quit", &Main_Window); 

    QObject::connect(&Bu_Quit, SIGNAL(clicked()), qApp, SLOT(quit())); 

    Main_Window.show(); 
    return app.exec(); 
} 

我一直有一個很難搞清楚如何正確添加QLabel s到QWidget S,我試圖設置Main_Window爲使用這種方法的主要部件: app.setMainWidget(Main_Window),標籤仍在窗外。那麼如何使用Qt將標籤放入小部件?

回答

7

哈姆扎,此代碼工作對我罰款:

#include <QtGui> 

int main(int argc, char *argv[]) 
{ 
    QApplication app(argc, argv); 

    QWidget Main_Window; 

    QLabel i_label("Start", &Main_Window); 
    //i_label.setPixmap(QPixmap("1837.jpg")); 

    QPushButton Bu_Quit("Quit" , &Main_Window); 
    QObject::connect(&Bu_Quit , SIGNAL(clicked()), qApp , SLOT(quit())); 

    QVBoxLayout *vbl = new QVBoxLayout(&Main_Window); 
    vbl->addWidget(&i_label); 
    vbl->addWidget(&Bu_Quit); 

    Main_Window.show(); 

    return app.exec(); 
} 

我評論設置圖像的代碼向您展示標籤已正確設置。確保你的圖像是有效的(否則你不會看到文字)。這裏的訣竅是您需要使用qt佈局,如QVBoxLayout

1

將標籤添加到佈局小部件並將窗口布局設置爲該佈局。

設計說明:更好地創建自己的MainWindow類,例如從QMainWindow繼承,並從內部進行設計。

或甚至更好,使用QtCreator