Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Adding a label to a widget

Tags:

c++

qt

I am trying to add a label to the main window using Qt. Here is a piece of the code:

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();
}

I've been having a very hard time figuring out how to properly add QLabels to QWidgets, I tried to set the Main_Window as the main widget using this method: app.setMainWidget(Main_Window) and the label was still outside the window. So how do I put labels into widgets using Qt?

like image 218
hamza Avatar asked Feb 04 '26 02:02

hamza


1 Answers

hamza, this code worked fine for me:

#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();
}

I commented setting the image code to show you that the label was set correctly. Make sure your image is valid (otherwise you won't see the text). The trick here was that you need to use qt layouts like QVBoxLayout

like image 87
Barbaris Avatar answered Feb 06 '26 21:02

Barbaris



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!