向窗口小部件添加标签

ham*_*mza 3 c++ qt

我正在尝试使用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();
}
Run Code Online (Sandbox Code Playgroud)

我一直很难弄清楚如何正确地添加QLabels到QWidgets,我试图Main_Window使用这种方法将其设置为主要小部件:app.setMainWidget(Main_Window)并且标签仍然在窗口之外.那么如何使用Qt将标签放入小部件?

小智 7

hamza,这段代码对我来说很好:

#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();
}
Run Code Online (Sandbox Code Playgroud)

我评论说设置图像代码以显示标签设置正确.确保您的图像有效(否则您将看不到文本).这里的诀窍是你需要使用像QVBoxLayout这样的qt布局