IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Discussion :

Probleme d'ouverture de TXT

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 5
    Par défaut Probleme d'ouverture de TXT
    Je suis sur Qt, et je voudrait créer un editeur de texte tout simple. mais le soucis, c'est que a chque fois que je clique sur Ouvrir, rien ne se passe voila merci de m'aider voila mes code :
    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
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    #include "FenPrincipale.h"
     
     
    FenPrincipale::FenPrincipale()
    {
        menuFichier = menuBar()->addMenu("&Fichier");
     
        actionNouveau = menuFichier->addAction("&Nouveau");
        actionNouveau->setShortcut(QKeySequence("Ctrl+N"));
        actionNouveau->setIcon(QIcon("image/nouveau.png"));
        connect(actionNouveau, SIGNAL(triggered()), this, SLOT(NouveauOnglet()));
     
        actionOuvrir = menuFichier->addAction("&Ouvrir");
        actionOuvrir->setShortcut(QKeySequence("Ctrl+O"));
        actionOuvrir->setIcon(QIcon("image/open.png"));
        connect(actionOuvrir, SIGNAL(triggered()), this, SLOT(Open(int)));
     
        actionEnregistrer = menuFichier->addAction("&Sauver");
        actionEnregistrer->setShortcut(QKeySequence("Ctrl+S"));
        actionEnregistrer->setIcon(QIcon("image/save.png"));
        connect(actionEnregistrer, SIGNAL(triggered()), this, SLOT(Sauver()));
     
        actionQuitter = menuFichier->addAction("&Quitter");
        actionQuitter->setShortcut(QKeySequence("Ctrl+Q"));
        actionQuitter->setIcon(QIcon("image/quitter.png"));
        connect(actionQuitter, SIGNAL(triggered()), qApp, SLOT(quit()));
     
     
        menuEdition = menuBar()->addMenu("&Edition");
     
     
     
        actionItalique = menuEdition->addAction("&Italique");
        actionItalique->setCheckable(true);
        actionItalique->setIcon(QIcon("image/italique.png"));
        actionItalique->setShortcut(QKeySequence("Ctrl+I"));
     
     
     
        actionSouligner = menuEdition->addAction("&Souligner");
        actionSouligner->setCheckable(true);
        actionSouligner->setIcon(QIcon("image/souligner.png"));
        actionSouligner->setShortcut(QKeySequence("Ctrl+U"));
        connect(actionSouligner, SIGNAL(triggered(bool)), zoneTexte, SLOT(setFontUnderline(bool)));
     
     
        //Widget Centrale
        zoneCentrale = new QMdiArea(this);
        zoneCentrale->setViewMode(QMdiArea::TabbedView);
        setCentralWidget(zoneCentrale);
    }
     
    void FenPrincipale::NouveauOnglet()
    {
        QTextEdit *zoneTexte = new QTextEdit(this);
        QMdiSubWindow *sousFenetre = zoneCentrale->addSubWindow(zoneTexte);
        sousFenetre->show();
     
        connect(actionItalique, SIGNAL(triggered(bool)), zoneTexte, SLOT(setFontItalic(bool)));
        connect(actionSouligner, SIGNAL(triggered(bool)), zoneTexte, SLOT(setFontUnderline(bool)));
    }
     
     
    void FenPrincipale::Sauver()
    {
        QString nomFichier = QFileDialog::getSaveFileName(this,
                                                        "Enregistrer un fichier",
                                                        "",
                                                        "Fichier Texte(*.txt)");
     
     
        QFile fichier(nomFichier);
        if(!fichier.open(QIODevice::WriteOnly | QIODevice::Text)) return;
     
        QTextEdit * leTextEditCourant = qobject_cast<QTextEdit *>(zoneCentrale->currentSubWindow()->widget());
     
        fichier.write(QByteArray(leTextEditCourant->toPlainText().toAscii()));
    }
     
    void FenPrincipale::Open(int FirstzoneTexte)
    {
        QString s_file = QFileDialog::getOpenFileName(this, "Ouverture un fichier", QString(), "Texte (*.txt)");
        QFile file(s_file);
         if (!file.open(QIODevice::ReadOnly))
             return;
     
         zoneTexte->setText(file.readAll());
    }
    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
    #ifndef HEADER_FENPRINCIPALE
    #define HEADER_FENPRINCIPALE
     
    #include <QtGui>
     
     
     
    class FenPrincipale : public QMainWindow
    {
     
        Q_OBJECT
     
    	public:
    		FenPrincipale();
     
    	private:
            QAction *actionNouveau;
            QAction *actionEnregistrer;
            QAction *actionQuitter;
            QMdiArea *zoneCentrale;
            QTextEdit *zoneTexte;
            QAction *actionSouligner;
            QAction *actionItalique;
            QMenu *menuFichier;
            QMenu *menuEdition;
            QAction *actionOuvrir;
     
     
     
     
     
     
        private slots:
            void NouveauOnglet();
            void Sauver();
     
     
     
     
        public slots:
            void Open(int FirstzoneTexte);
     
     
     
     
    };
     
     
    #endif

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 248
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    connect(actionOuvrir, SIGNAL(triggered()), this, SLOT(Open(int)));
    SIGNAL(triggered()) n'a aucun paramètre par contre SLOT(Open(int))) en a !

    Je crois que le SIGNAL et le SLOT doivent avoir les mêmes paramètres. Si tu veux que le signal triggered() passe un int en paramètre, regarde pour QSignalMapper

    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
            int parametre = quelque chose;	
            QSignalMapper mapper = new QSignalMapper(this);
    	QObject::connect(actionOuvrir,SIGNAL(triggered()),mapper,SLOT(map()));
    	mapper->setMapping(action, parametre);
    	QObject::connect(mapper,SIGNAL(mapped(int)),this,SLOT(Open(int)));

  3. #3
    Membre très actif
    Avatar de FloMo
    Homme Profil pro
    Freelance iOS
    Inscrit en
    Juillet 2004
    Messages
    726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Freelance iOS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 726
    Par défaut
    Simple question : à quoi va te servir le paramètre de type entier étant donné que tu ne l'utilises pas dans ta fonction ?

  4. #4
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 5
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        actionOuvrir = menuFichier->addAction("&Ouvrir");
        actionOuvrir->setShortcut(QKeySequence("Ctrl+O"));
        actionOuvrir->setIcon(QIcon("image/open.png"));
        connect(actionOuvrir, SIGNAL(triggered(int)), this, SLOT(Open(int)));
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     void FenPrincipale::Open()
     {
        QString s_file = QFileDialog::getOpenFileName(this, "Ouverture un fichier", QString(), "Texte (*.txt)");
        QFile file(s_file);
         if (!file.open(QIODevice::ReadOnly))
             return;
     
         zoneTexte->setText(file.readAll());
    }
    Comme ca ?? (si Oui, quand je clique sur Ouvrir, rien ne se passe...)

  5. #5
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Salut regarde dans la FAQ et dans les tuto,
    tu trouvera des expliquations sur les signal/slot

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 248
    Par défaut
    Citation Envoyé par baudon00 Voir le message
    Comme ca ?? (si Oui, quand je clique sur Ouvrir, rien ne se passe...)

    Comme c'est écrit dans mon poste la haut, si tu veux utiliser un signal triggered() avec un int en paramètre, faut que tu passes par le signalMapper. (je t'ai même mis le code)
    Sinon t'as juste à faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    connect(actionOuvrir, SIGNAL(triggered()), this, SLOT(Open()));

  7. #7
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 5
    Par défaut
    Une amelioratopn !! mais ...

    Quand je clique sur ouvrir, il m'ouvre une fenetre ou je choisi le fichier a ouvrir, et dès que je fais ouvrir, il me dit que le programme de répond plus, il doit fermer une truc comme ça ;D

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        actionOuvrir = menuFichier->addAction("&Ouvrir");
        actionOuvrir->setShortcut(QKeySequence("Ctrl+O"));
        actionOuvrir->setIcon(QIcon("image/open.png"));
        connect(actionOuvrir, SIGNAL(triggered()), this, SLOT(Open()));
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     void FenPrincipale::Open()
     {
        QString s_file = QFileDialog::getOpenFileName(this, "Ouverture un fichier", QString(), "Texte (*.txt)");
        QFile file(s_file);
         if (!file.open(QIODevice::ReadOnly))
             return;
     
         zoneTexte->setText(file.readAll());
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme d'ouverture de requette
    Par ghita269 dans le forum ASP
    Réponses: 4
    Dernier message: 29/12/2005, 10h37
  2. Probleme d'ouverture de disquette
    Par rika dans le forum Périphériques
    Réponses: 4
    Dernier message: 28/11/2005, 16h29
  3. Probleme d'ouverture d'une BD Access !!!
    Par realmadrid dans le forum Access
    Réponses: 7
    Dernier message: 07/10/2005, 15h19
  4. [visual c++]Probleme d'ouverture de solution
    Par dje41 dans le forum MFC
    Réponses: 2
    Dernier message: 12/04/2005, 11h41
  5. Probleme d'ouverture de formulaire
    Par nemesys971 dans le forum IHM
    Réponses: 11
    Dernier message: 01/02/2005, 15h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo