problème de connect avec le SIGNAL itemClicked(item) avec Qt

problème de connect avec le SIGNAL itemClicked(item) avec Qt - C++ - Programmation

Marsh Posté le 18-04-2008 à 19:39:48    

Bonjour à tous!
 
J'ai un petit problème de connexion entre mon signal et mon slot. Je désire faire  une lsite de mot, et lorsque l'on clique sur un de ces mot, une fenêtre s'ouvre avec des informations.
Pour tester j'ai donc voulu créer la connexion qui ferme la fenêtre lorsque l'on clique sur le deuxième mot. Mais je n'y arrive pas lol (pourtant ça doit être enfantin, je sais).
J'ai le message d'erreur suivant :
Object::connect: No such signal QListWidget::itemClicked(Item2)
Object::connect:  (receiver name: 'TestList')
 
Voici le code
 

Code :
  1. #include <QtGui>
  2. int main(int argc, char *argv[])
  3. {
  4. QApplication app(argc, argv);
  5. QWidget MainWindow;
  6. QListWidget *listWidget = new QListWidget(&MainWindow);
  7. QListWidgetItem* Item1=new QListWidgetItem("Bonjour", listWidget);
  8. QListWidgetItem* Item2=new QListWidgetItem("Coucou", listWidget);
  9. QListWidgetItem* Item3=new QListWidgetItem("Salut", listWidget);
  10. QObject::connect(listWidget, SIGNAL(itemClicked(Item2)), qApp, SLOT(quit()));
  11. /*QLinkedList<QString> list;
  12. list << "one" << "two" << "three";*/
  13. listWidget->resize(500,500);
  14. MainWindow.resize(500,500);
  15. MainWindow.show();
  16. return app.exec();
  17. }


 
Merci pour votre aide

Reply

Marsh Posté le 18-04-2008 à 19:39:48   

Reply

Marsh Posté le 21-04-2008 à 17:00:35    

Salut !
 
   Le problème viens du fait que tu utilise mal ton connect. En effet, le deuxième paramètre n'est sensé être que la signature du signal. Donc tu devrai avoir un truc du genre :  

Code :
  1. QObject::connect(listWidget, SIGNAL(itemClicked ( QListWidgetItem * item )), qApp, SLOT(quit()));


Le widget qui a été sélectionné n'est pas a spécifier : c'est ton signal qui te l'indique via son argument.
 
Je pense qu'il serai bon que tu regarde les premier tutoriaux de QT, ça sera un grand gain de temps pour toi :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed