Bonjour,

je voudrais savoir comment ajouter de la complétion de code C++ à eclipse, que j'utilise avec Qt; voici le code de spreadsheet.cpp et spreadsheet.h; ces deux fichiers sont ceux d'un tableur (spreadsheet en anglais), la classe spreadsheet hérite de QTableWidget, contrôle gérant une grille de données.

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
 
#include <QtGui>
#include "cell.h"
#include "spreadsheet.h"
 
Spreadsheet::Spreadsheet(QWidget* parent):QTableWidget(parent)
    {
    autoRecalculate=true;
    setItemPrototype(new Cell);
    setSelectionMode(ContiguousSelection);
    connect(this,SIGNAL(itemChanged(QTableWidgetItem*)),this,
	    SLOT(somethingChanged()));
    clear();
 
 
    }
 
void spreadsheet::clear()
    {
    setRowCount(0);
    setColumnCount(0);
    setRowCount(RowCount);
    setColumnCount(ColumnCount);
 
    for (int i=0;i<Column;i++)
	{
	QTableWidgetItem* item=new QTableWidgetItem;
	item->setText(QString(QChar('A'+i)));
	setHorizontalHeaderItem(i,item);
 
	}
    setCurrentCell(0,0);
    }
et spreadsheet.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
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
 
#ifndef SPREADSHEET_
#define SPREADSHEET_
#include <QTableWidget>
 
class Cell;
class SpreadsheetCompare;
 
class Spreadsheet:public QTableWidget
    {
    Q_OBJECT
 
public:
    Spreadsheet(QWidget* parent=0);
    bool autoRecalculate() const {return autoRecalculate;}
    QString currentLocation() const;
    QString currentFormula() const;
    QTableWidgetSelectionRange selectedRange() const;
    void clear();
    bool readFile(const QString& fileName);
    bool writeFile(const QString & fileName);
    void sort(const SpreadsheetCompare & compare);
 
    public slots:
    void cut();
    void copy();
    void paste();
    void del();
    void selectCurrentRow();
    void setCurrentColumn();
    void recalculate();
    void setAutoRecalculate();
    void findNext(const QString &str,Qt::CaseSensitivity cs);
    void findPrevious(const QString& str,Qt::CaseSensitivity cs);
 
    signals:
    void modified();
 
    private slots:
    void somethingChanged();
 
    private:
	enum {MagicNumber=0x7F51C883,rowCount=999,ColumnCount=26};
	Cell* cell(int row,int column) const;
	QString text(int row,int column) const;
	QString formula(int row,int column) const;
	void setFormula(int row,int column,const QString& formula);
	bool autoRecalculate;
 
 
 
    };
 
class SpreadsheetCompare
    {
public:
    bool operator()(const QStringList& row1,const QStringList& row2) const;
    enum {KeyCount=3};
    int Keys[KeyCount];
    bool ascending[KeyCount];
 
 
 
    };
 
 
 
#endif /*SPREADSHEET_*/

le truc particulier c'est que ces deux fichiers sont dans le sous-répertoire "spreadsheet" du projet, pas dans le répertoire principal.

je n'ai pas la complétion et ça m'embête bien, est-ce qu'eclipse interrompt la complétion si une inclusion est non valable(en effet, le fichier cell.h n'existe pas encore).

lolveley.