2011-04-20 13 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(); 
} 

내가 제대로 QWidget들에 QLabel의를 추가하는 방법을 알아내는 매우 힘든 시간을 보내고 봤는데, 나는이 방법을 사용하여 메인 위젯으로 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

레이블을 레이아웃 위젯에 추가하고 창 레이아웃을 해당 레이아웃으로 설정하십시오.

디자인 노트 : 예를 들어 QMainWindow을 상속받은 나만의 MainWindow 클래스를 만드는 것이 좋습니다. 내부에서 디자인하십시오.

이상인 경우 QtCreator을 사용하십시오.