2011-04-20 74 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