Hello à tous !
Je débute sur Qt et bien que je trouve ça très bien fait, le fonctionnement me paraît encore très farfelu voir quasi-sadique.
Voilà voilà donc j'essaye de m'habituer et de comprendre un peu comment tout cela marche.
Aussi je suis actuellement en train de me battre avec les signaux et les slots (personnalisé bien sûr, et je pense avoir bien intégré l'idée et le fonctionnement de base).
Cependant voilà, j'ai un petit soucis. Pour résumer :
fenetre.cpp :
J'ai un bouton
une comboBox
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 m_button = new QPushButton("Implement ComboBoxOne", this); m_button->setFont(QFont("Comic Sans MS", 14)); m_button->setCursor(Qt::PointingHandCursor); m_button->move(120, 50);
Et j'aimerais qu'un appui sur ce bouton envoi des valeurs précises en tant qu' "items" dans la combo box (j'ai décidé de commencer simplement avec des String).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 QComboBox *m_cbb; m_cbb = new QComboBox(this); m_cbb->setGeometry(10, 50, 100, 25);
J'ai donc déclaré (dans le header de la dite class)
fenetre.h
et dans le fenetre.cpp de nouveau
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 public slots: void implementComboBox();
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 void Fenetre::implementeComboBox() { QStringList list; list << "1" << "2" << "3" << "4"; QStringListModel *model = new QStringListModel(); model->setStringList(list); m_cbb->setModel(model); }
Et hop ! Je rajoute un signal appelant mon slot :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 QObject::connect(m_button, SIGNAL(clicked()), this, SLOT(implementeComboBox()));
Très basique en soit. Je Run, tout se passe très bien, j'appuie sur mon bouton et là....
Foutrediantre !
"testComboBoxFoireuse.exe has stopped working. A problem caused the program to sop working correctly... nanana on va close le program et te notifier si une solution est disponible t'inquiète pas !"
Au début je me suis dit :
"Bon bah j'attends d'être notifié !!"
Mais là ça fait bientôt 3 heures : c'est chiant !
Un sauveur svp ?
EDIT : Oublié de préciser... Je pensais au début être juste pas doué avec les comboBox mais il se trouve que quand je met le code du slot implementComboBox dans la définition de la classe, la combo Box contient bien les items "1", "2", etc... Aussi je me suis dit "bah il arrive pas à récupérer ma comboBox dans mon slot ??? Mais ça paraît étrange étant donné que le slot fait lui même parti de la classe qui définit la combo Box, nan ?
Partager