Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Qt]Aide pour l'éditeur de texte

Dans le chapitre 10

    6 juin 2008 à 15:07:56

    slt a tous !!

    bon voila j'en suis à la fin du chapitre 10 et j'essaye de coder l'éditeur depuis hier mais j'ai tous bien fais, aucune erreur, mais je ne sais pas quoi mettre dans les methodes pour créé, ouvrir et sauvgarder un texte ! Je sais bien qu'il faut utiliser QFile mais je ne sais pas par quoi commencer (j'ai lu la doc)

    FenPrincipale.h
    #ifndef HEADER_FENPRINCIPALE
    #define HEADER_FENPRINCIPALE
    
    #include <QtGui>
    
    class FenPrincipale : public QMainWindow
    {
        Q_OBJECT
    
    
    	public:
    		FenPrincipale();
    
        private slots:
    
            void newFile();
            void openFile();
            void saveFile();
    
    	private:
                        // Creation des menus
            QMenu *menuFichier;
            QMenu *menuEdition;
    
                    // Creation des variables qui constituront les action des menus...
    
                // Celle du menu fichier
            QAction *actionNouveau;
            QAction *actionOuvrir;
            QAction *actionSave;
            QAction *actionQuitter;
    
                // Celle du menu edition
    
    
                        // Creation de la  barre d'outils
    
            QToolBar *toolBarFichier;
    };
    #endif
    


    et FenPricipale.cpp
    #include "FenPrincipale.h"
    
    FenPrincipale::FenPrincipale()
    {
                // Défénition des menus
    
            // Fichier
        menuFichier = menuBar()->addMenu("&Fichier");
    
        actionNouveau = menuFichier->addAction("&Nouveau");
        actionOuvrir = menuFichier->addAction("&Ouvrir");
        actionSave = menuFichier->addAction("&Enregistrer");
        actionQuitter = menuFichier->addAction("&Quitter");
    
        actionNouveau->setShortcut(QKeySequence("Alt+N"));
        actionOuvrir->setShortcut(QKeySequence("Alt+O"));
        actionSave->setShortcut(QKeySequence("Alt+E"));
        actionQuitter->setShortcut(QKeySequence("Alt+Q"));
    
        actionNouveau->setIcon(QIcon("filenew.png"));
        actionOuvrir->setIcon(QIcon("fileopen.png"));
        actionSave->setIcon(QIcon("filesave.png"));
        actionQuitter->setIcon(QIcon("quitter.jpg"));
    
            // Edition
        menuEdition = menuBar()->addMenu("&Edition");
    
    
    
                // Défénition de la barre d'outils
    
    
        toolBarFichier = addToolBar("Fichier");
    
            // Ajout des actions liée a cette barre d'outils
    
        toolBarFichier->addAction(actionNouveau);
        toolBarFichier->addAction(actionOuvrir);
        toolBarFichier->addAction(actionSave);
    
        toolBarFichier->setFloatable(false);
        toolBarFichier->setMovable(false);
    
    
            // Connection des actions
        connect(actionNouveau, SIGNAL(triggered()), this, SLOT(newFile()));
        connect(actionOuvrir, SIGNAL(triggered()), this, SLOT(openFile()));
        connect(actionSave, SIGNAL(triggered()), this, SLOT(saveFile()));
        connect(actionQuitter, SIGNAL(triggered()), qApp, SLOT(quit()));
    }
    
    // C'EST ICI QUE JE BLOQUE
    
    void FenPrincipale::newFile()
    {
    
    }
    
    void FenPrincipale::openFile()
    {
    
    }
    
    void FenPrincipale::saveFile()
    {
    
    }
    


    je suis sur en tout cas qu'il faut créé un QTextEdit mais je bloque donc,
    merci de votre aide :)


    EDIT :

    j'ai avancé un peu avec ce lien et donc voici la fin de FenPrincipale.cpp :

    // Connection des actions
        connect(actionNouveau, SIGNAL(triggered()), this, SLOT(newFile()));
        connect(actionOuvrir, SIGNAL(triggered()), this, SLOT(openFile()));
        connect(actionSave, SIGNAL(triggered()), this, SLOT(saveFile()));
        connect(actionQuitter, SIGNAL(triggered()), qApp, SLOT(quit()));
    }
    
    void FenPrincipale::newFile()
    {
        textEdit = new QTextEdit;
        setCentralWidget(textEdit);
    }
    


    mais j'aimerais juste qu'une fois qu'un nouveau fichier est créé, le curseur est immédiatement déplacer a l'intérieur du QTextEdit.
    • Partager sur Facebook
    • Partager sur Twitter
      8 juin 2008 à 21:04:30

      bon, j'ai un peu panché dessus, et j'ai rajouté une fonction qui permet de changer de police mais je voulais aussi qu'une mettre une boite de dialogue au cas où l'on voudrait changer de police et qu'au fichier ne soit ouvert !
      voici la fct :

      void FenPrincipale::changedFonts()
      {
          bool cliquer = false;
      
          QFont police = QFontDialog::getFont(&cliquer, textEdit->font(), this, "Choisissez la nouvelle police");
      
          if (cliquer)
              textEdit->setFont(police);
          else // je pense qu'il faut mettre ici un else if(...)
              QMessageBox::critical(this, "Erreur !!", "Aucun fichier n'est ouvert ! Merci d'en creer-un ou de ouvrir !");
      
      }
      


      merci de votre aide :)
      • Partager sur Facebook
      • Partager sur Twitter
        8 juin 2008 à 21:36:54

        Qu'est ce qu'il te manque alors ?
        • Partager sur Facebook
        • Partager sur Twitter
          8 juin 2008 à 23:16:30

          eh bien pas de pb lors de la compile mais quand je teste le "truc" (en appuyant sur changer de police alors que je n'ai pas de fichier ouvert), l'ordi me dit que bloc_note.exe a céssé de fonctionner...
          donc voila ?
          • Partager sur Facebook
          • Partager sur Twitter
            9 juin 2008 à 23:42:30

            non mais merci !!
            j'ai quand meme trouvé l'erreur -> ma boite de dialoge ne s'affiche lorsque je clique sur "annuler" pour changer de police (ayant préalablement créer un nouveau fichier :) )
            donc je pense qu'il faut réfléchir sur un systeme où l'on connecte plusieurs SIGNAL ou SLOT (un enchainnement de 2)
            donc voila mon code :

            // Connection des actions
                connect(actionNouveau, SIGNAL(triggered()), this, SLOT(newFile()));
                connect(actionOuvrir, SIGNAL(triggered()), this, SLOT(openFile()));
                connect(actionSave, SIGNAL(triggered()), this, SLOT(saveFile()));
                connect(actionSaveAs, SIGNAL(triggered()), this, SLOT(saveAsFile()));
                connect(actionChxFonts, SIGNAL(triggered()), this, SLOT(changedFonts()));
            
                connect(actionQuitter, SIGNAL(triggered()), qApp, SLOT(quit()));
            
            void FenPrincipale::newFile()
            {
                textEdit = new QTextEdit;
                setCentralWidget(textEdit);
            }
            
                  // ..... ps: mes méthodes openFile, saveFile, saveAsFile sont vide 
            
            void FenPrincipale::changedFonts()
            {
                bool cliquer = false;
            
                QFont police = QFontDialog::getFont(&cliquer, textEdit->font(), this, "Choisissez la nouvelle police");
            
                if (cliquer)
                    textEdit->setFont(police);     
            }
            


            et voici la boite de dialogue :
            QMessageBox::critical(this, "Aucun fichier ouvert !", "Aucun fichier n'a été ouvert, veuillez en ouvrir un ou le créé");
            


            merci de votre aide :)




            EDIT :

            donc j'ai créé un booléen mais il y a toujours l'alerte de windows !!
            le code:

            if(fileCO)
                        connect(actionChxFonts, SIGNAL(triggered()), this, SLOT(changedFonts()));
                    else
                        QMessageBox::critical(this, "Aucun fichier ouvert !", "Aucun fichier n'a été ouvert, veuillez en ouvrir un ou le créé");
            
                connect(actionQuitter, SIGNAL(triggered()), qApp, SLOT(quit()));
            }
            
            
            void FenPrincipale::newFile()
            {
                fileCO = true;
                textEdit = new QTextEdit;
                setCentralWidget(textEdit);
            }
            
            void FenPrincipale::openFile()
            {
                fileCO = true;
            }
            


            donc voila, :)
            • Partager sur Facebook
            • Partager sur Twitter

            [Qt]Aide pour l'éditeur de texte

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown