Bonjour,

j'ai eclipse CDT+Qt, et l'environement marche.
En tapant un exemple d'un livre dédié à Qt, j'ai une erreur dans une classe qui est pour moi incompréhensible.
cette classe est un QtGUI Project, elle représente une fenêtre destinée à permettre une recherche dans un tableur; on entre la chaîne de caractères à chercher, il y a deux options de recherche (faire attention à la casse et rechercher vers le haut), deux boutons (chercher, fermer).

voici les fichiers du projet:

finddialog.h
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
 
 
#ifndef FINDDIALOG_H
#define FINDDIALOG_H
 
#include <QDialog>
 
class QCheckBox;
class QLabel;
class QLineEdit;
class QPushButton;
 
class FindDialog : public QDialog
{
    Q_OBJECT
 
public:
    FindDialog(QWidget *parent = 0);
 
signals:
	void findNext(const QString& str,Qt::CaseSensitivity cs);
	void findPrevious(const QString & str,Qt::CaseSensitivity cs );
 
private slots:
	void findClicked();
	void enableFindButton(const QString & text);
 
 
private:
    QLabel* label;
    QLineEdit* lineEdit;
    QCheckBox* caseCheckBox;
    QPushButton* findButton;
    QPushButton* closeButton;
 
};
 
#endif // FINDDIALOG_H
finddialog.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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
 
 
#include <QtGui>
#include "finddialog.h"
 
FindDialog::FindDialog(QWidget *parent)
    : QDialog(parent)
{
	label=new QLabel("Find &what:");
	lineEdit=new QLineEdit;
	label->setBuddy(lineEdit);
 
	QCheckBox* caseCheckBox=new QCheckBox("Match &Case");
	QCheckBox* bwCheckBox=new QCheckBox("Search &backward");
 
	findButton=new QPushButton("&Find");
	findButton->setDefault(true);
	findButton->setEnabled(false);
 
	closeButton=new QPushButton("Close");
 
	connect(lineEdit,SIGNAL(textChanged(const QString &)),
			this,SLOT(enableFindButton(const QString &)));
	connect (findButton,SIGNAL(clicked()),
			this, SLOT(findClicked()));
	connect(closeButton,SIGNAL(clicked()),
			this,SLOT(close()));
 
 
	QHBoxLayout* topLeftLayout=new QHBoxLayout;
	topLeftLayout->addWidget(label);
	topLeftLayout->addWidget(lineEdit);
 
	QVBoxLayout* leftLayout = new QVBoxLayout;
	leftLayout->addLayout(topLeftLayout);
	leftLayout->addWidget(caseCheckBox);
	leftLayout->addWidget(bwCheckBox);
 
	QVBoxLayout* rightLayout = new QVBoxLayout;
	rightLayout->addWidget(findButton);
	rightLayout->addWidget(closeButton);
	rightLayout->addStretch();
 
	QHBoxLayout* mainLayout=new QHBoxLayout;
	mainLayout->addLayout(leftLayout);
	mainLayout->addLayout(leftLayout);
	mainLayout->addLayout(rightLayout);
	setLayout(mainLayout);
 
 
}
 
 
void FindDialog::findClicked(){
 
	QString text=lineEdit->text();
	Qt::CaseSensitivity cs = caseCheckBox->isChecked() ? Qt::CaseSensitive : Qt::CaseInsensitive;
--->   if ( bwCheckBox -> isChecked() ) 
		emit findPrevious(text,cs);
	else
		emit findNext(text,cs);
 
}
 
void FindDialog::enableFindButton(const QString& text){
	findButton->setEnabled(!text.isEmpty());
 
}
et main.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
 
#include <QtGui>
#include <QApplication>
#include "finddialog.h"
 
int main(int argc,char* argv[])
{
	QApplication app(argc,argv);
	FindDialog* dialog=new FindDialog;
	dialog->show();
	return app.exec();
 
 
}
et l'erreur se situe à la ligne où il y a la flèche (fichier finddialog.cpp), l'erreur est:

`bwCheckBox' undeclared (first use this function) tableur finddialog.cpp
je pense à une erreur toute bête, car le cas de bwCheckBox est le même que caseCheckBox qui , elle, marche très bien.



merci ,

lolveley.