Ouverture de fichiers à partir d'une QComboBox
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:
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:
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:
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*!!! :P
PS*: soyez indulgents, je débute en programmation…*:?