Bonsoir à tous et à toutes,
J’avais une petite question en Qt.
Voilà*: je souhaite créer une QComboBox qui ouvre automatiquement le fichier .txt que l’on sélectionne. Le programme fait donc apparaitre une liste déroulante contenant 4 noms de fichier (fichierA, fichierB, fichierC, fichierD) ainsi qu’un QPushButton que l’on actionne une fois que l’on a sélectionné le fichier que l’on souhaite ouvrir (respectivement fichierA.txt, etc.).
J’ai donc écrit le programme suivant*:
main.cpp
#include <QApplication>
#include <QtGui>
#include "MaFenetre.h"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 int main(int argc, char *argv[]) { QApplication app(argc, argv); MaFenetre fenetre; fenetre.show(); return app.exec(); }
MaFenetre.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 #include "MaFenetre.h" MaFenetre::MaFenetre() : QWidget() { setFixedSize(300, 150); // Construction du bouton m_bouton = new QPushButton("Ouvrir", this); m_bouton->setFont(QFont("Comic Sans MS", 14)); m_bouton->setCursor(Qt::PointingHandCursor); m_bouton->move(120, 70); box = new QComboBox(this); box->addItem("fichierA"); box->addItem("fichierB"); box->addItem("fichierC"); box->addItem("fichierD"); box->move(30, 20); QObject::connect(box, SIGNAL(currentIndexChanged(QString)), this, SLOT(ouvrirFichier())); } void MaFenetre :: ouvrirFichier() { QTextEdit zoneTexte; QString texte; zoneTexte.setGeometry(100,100,400,200); zoneTexte.setReadOnly(true); for (int i=0; i<box->count(); ++i) { QFile fichier("setCurrentItem(i).txt"); if(fichier.open(QIODevice::ReadOnly | QIODevice::Text)) { texte = fichier.readAll(); fichier.close(); } else texte = "Impossible d'ouvrir le fichier !"; zoneTexte.setText(texte); zoneTexte.show(); } }
MaFenetre.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 #ifndef DEF_MAFENETRE #define DEF_MAFENETRE #include <QApplication> #include <QWidget> #include <QPushButton> #include <QTextEdit> #include <QFile> #include <QString> #include <QTextStream> #include <QFileDialog> #include <QtGui> class MaFenetre : public QWidget // On hérite de QWidget { public: MaFenetre(); private: QPushButton *m_bouton; QComboBox *box; public slots: void ouvrirFichier(); }; #endif
Lorsque je lance ce programme, il n'y a pas d'erreurs mais ça ne marche pas. La page Fenetre.cpp est sans doute fausse mais je ne sais pas comment faire.
Si l’un (l’une) de vous a la solution à ce problème, ça m’intéresse beaucoup.
Merci d’avance*!!!
PS*: soyez indulgents, je débute en programmation…*![]()
Partager