Bonjour,
Le problème est dans le titre...
Voici mon code (J'ai créer une classe sur la base d'un QLabel qui emet un signal lorsque un bouton de souris est pressé):
le .h
Code:
le .cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 class monLabel : public QLabel { Q_OBJECT public: monLabel(QWidget * parent=0,Qt::WindowFlags f = 0); void setValue(const int var); int getValue(); protected: void mousePressEvent(QMouseEvent); signals: void onClicked(const int var); private : int m_var; };
Code:
la suite du cpp
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 monLabel::monLabel(QWidget * parent,Qt::WindowFlags f) : QLabel(parent,f) { m_var=-1; } void monLabel::mousePressEvent(QMouseEvent) { emit onClicked(m_var); } void monLabel::setValue(const int var) { m_var=var; } int monLabel::getValue() { return m_var; }
Code:
Seulement voilà, lorsque je clique sur une image, il ne se passe rien :-(
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
38
39
40
41
42 void FenPrincipale::ouvrirRep() { QDir directory = QFileDialog::getExistingDirectory(this, tr("Recherche de fichiers"), QDir::currentPath()); QString fileName = "*.jpg"; QStringList files; files = directory.entryList(QStringList(fileName),QDir::Files | QDir::NoSymLinks); imageLabel = new monLabel[files.count()]; scrollArea = new QScrollArea; scrollArea->setBackgroundRole(QPalette::Dark); QHBoxLayout *imageLayout = new QHBoxLayout; for (int i = 0; i < files.count(); ++i) { QImage image(directory.absoluteFilePath(files[i])); image=image.scaled(100,100, Qt::KeepAspectRatio,Qt::FastTransformation); imageLabel[i].setPixmap(QPixmap::fromImage(image)); imageLabel[i].setValue(i); imageLayout->addWidget(&imageLabel[i]); connect(&imageLabel[i], SIGNAL(onClicked(int)), this, SLOT(afficheImageGrand(int))); } QGroupBox *groupImage = new QGroupBox("Groupe d'Images"); groupImage->setLayout(imageLayout); scrollArea->setWidget(groupImage); scrollArea->setWidgetResizable(true); setCentralWidget(scrollArea); QHBoxLayout *imagesLayout = new QHBoxLayout; setLayout(imagesLayout); } void FenPrincipale::afficheImageGrand(const int i) { QMessageBox::information(this, "test",QVariant(i).toString()); }
Avez vous une idée d'où peut venir mon erreur?
Merci d'avance
Partager