2011-04-20 2 views
3

J'essaie d'ajouter une étiquette à la fenêtre principale en utilisant Qt. Voici un morceau de code:Ajout d'une étiquette à un widget

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

J'ai eu beaucoup de mal à trouver comment ajouter correctement QLabel s à QWidget s, j'ai essayé de régler le Main_Window comme le widget principal en utilisant cette méthode: app.setMainWidget(Main_Window) et l'étiquette était encore en dehors de la fenêtre. Alors, comment puis-je mettre des étiquettes dans les widgets en utilisant Qt?

Répondre

7

hamza, ce code a bien fonctionné pour moi:

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

Je commenté le réglage du code d'image pour vous montrer que l'étiquette a été correctement réglé. Assurez-vous que votre image est valide (sinon vous ne verrez pas le texte). L'astuce ici était que vous devez utiliser des dispositions qt comme QVBoxLayout

1

Ajoutez l'étiquette à un widget de disposition et définissez la disposition de la fenêtre sur cette présentation. Note de conception: il est préférable de créer votre propre classe MainWindow, héritant par exemple de QMainWindow, et de la concevoir de l'intérieur. Ou mieux, utilisez QtCreator.

Questions connexes