bonjour,

voila,, ca doit etre tout bete, mais je ne comprends pas trop le probleme :
j'utilise un QListWidget, dans lequel, je mets 4 lignes toutes simple, et je veux (pour tester et comprendre, faire un connect entre le signal ItemClicked et un slot a moi pour changer le la couleur de fond de l'item, mais le connect ne marche pas, et je vois pas le souci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <QApplication>
#include <QListWidget>
#include <QListWidgetItem>
#include <QObject>
 
class List : public QListWidget
{
  Q_OBJECT
  public :
    List(QWidget *parent = 0);
  private slots :
    void ClickItem(QListWidgetItem * item);
};
 
void List::ClickItem(QListWidgetItem * item)
{
  item->setBackground(QBrush(QColor(45,78,193)));
}
 
List::List(QWidget *parent)
{
  connect(this, SIGNAL(itemClicked(QListWidgetItem *)), this, SLOT(ClickItem(QListWidgetItem *)));
}
 
int main (int argc, char * argv[])
{
 QApplication app(argc, argv );
 
 List * ListWidget = new List();
 ListWidget->addItem(QString("option1"));
 ListWidget->addItem(QString("option2"));
 ListWidget->addItem(QString("option3"));
 ListWidget->addItem(QString("option4"));
 
 ListWidget->show();
 return app.exec();
}
si j compile, LD me donne le message suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
main.o: In function `List::List(QWidget*)':
main.cpp:(.text+0x21): undefined reference to `vtable for List'
main.cpp:(.text+0x28): undefined reference to `vtable for List'
main.o: In function `List::List(QWidget*)':
main.cpp:(.text+0x91): undefined reference to `vtable for List'
main.cpp:(.text+0x98): undefined reference to `vtable for List'
collect2: ld a retourné 1 code d'état d'exécution
make: *** [listwidget] Erreur 1
si j'essaie en supprimant Q_OBJECT de la classe, je n'ai pas d'erreur de linkage, mais a l'execution, j'ai le message suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Object::connect: No such slot QListWidget::ClickItem(QListWidgetItem*)
l'application fonctionne, elle s'affiche, mais au clic, rien, pasd'evenement.

etant nouveau dans QT, je vois pas le probleme, c'est peu être tout bete.

si quelqu'un a une idée ....
là, j'en perds mon latin, ou plutot mon QT ...