Bonjour à tous!
Tout d'abord, je vous préviens que je débute en Qt (et en C++ an même temps), et que ma question peut paraître stupide à certains programmeurs plus aguerris,... mais aidez-moi svp, je bloque
Voici mon code:
J'ai donc ma joulie classe Fenetre dans le fichier Fenetre.cpp, avec mon constructeur (qui définit l'interface graphique):
Et la définition de ma classe dans Fenetre.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
69
70
71
72
73 #include "Fenetre.h" #include <iostream> using namespace std; Fenetre::Fenetre() { creerActions(); setMinimumSize(450, 600); setMaximumSize(800, 800); } void Fenetre::creerActions() { actionChargerFichier = new QAction(tr("Char&ger un fichier"), this); connect(actionChargerFichier, SIGNAL(triggered()), this, SLOT(chargerFichier())); } void Fenetre::chargerFichier() { QString cheminGrilleChargee = QFileDialog::getOpenFileName(this, tr("Ouvrir un fichier"), "/", tr("Fichiers (*.txt *.sdk *.data)")); int i=0, j=0; bool compatible = true; char c; QFile fichier(cheminGrilleChargee); fichier.open(QIODevice::ReadOnly); QLineEdit *cases[9][9]; int tableau[9][9]; while(i<9) { while(j<9) { cases[i][j] = new QLineEdit; fichier.getChar(&c); else if(c=='c') { fichier.getChar(&c); QChar c2(c); QString string(c2); cases[i][j]->setText(string); tableau[i][j] = string.toInt(); } else if(c=='r') { fichier.getChar(&c); tableau[i][j] = 0; } j++; } j=0; i++; } cout << tableau[0][0] << endl << tableau[5][4] << endl; QPushButton *boutonAfficher = new QPushButton; boutonValider->setText("Afficher!"); connect(boutonAfficher, SIGNAL(clicked()), this, SLOT(affichageTableau())); } void Fenetre::affichageTableau() { cout << tableau[0][0] << endl << tableau[5][4] << endl; }
Bien sûr, j'ai un peu coupé le code pour ne garder que ce qui pose problème.
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 #ifndef HEADER_FENETRE #define HEADER_FENETRE #include <QtGui> class Fenetre : public QMainWindow { Q_OBJECT public: Fenetre(); private: void creerActions(); void chargerFichier(); private slots: void affichageTableau(); private: QLineEdit *cases[9][9]; int tableau[9][9]; }; #endif
Parlons-en de ce problème: le cout dans chargerFichier() m'affiche correctement les valeurs attendues. Mais quand on passe au slot affichageTableau() (lors du clic sur boutonAfficher), le cout m'affiche un nombre qui me semble être une adresse mémoire. Mais ce n'est pas le nombre que j'attends...
Au fait, au départ je pensais que c'était le passage des 3 changement de types (char vers QChar puis vers QString, et enfin vers int avec la méthode toint() ) qui posait problème, mais apparemment ce n'est pas le cas.
Merci de m'expliquer mon erreur
Partager