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

Qt Discussion :

Création d'un éditeur de texte


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de timiti29
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 95
    Par défaut Création d'un éditeur de texte
    Bonjour à tous !
    Actuellement, j'apprends Qt et je souhaite crée un éditeur de texte
    multi-documents.
    J'ai crée ma fenêtre avec un QMainWindow.
    Je voulais savoir comment je pourrais faire ma fonction permettant d'ouvrir mon fichier(fonction créant une nouvelle sous-fenêtre sous forme d'onglet) car je ne sais pas comment faire !
    Merci à tous !
    Je sais crée des sous-fenêtre mais je les crée en leur donnant un nom ect...
    Mais la je ne sais pas comment je peut mi prendre.
    Merci de m'aider !
    Je vous passe me code actuel :
    main.cpp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #include <QApplication>
    #include "FenetrePrincipale.h"
     
    int main(int argc, char* argv[])
    {
        QApplication app(argc, argv);
     
    	FenetrePrincipale fenetre;
    	fenetre.show();
    	//fenetre.setFocus();
     
        return app.exec();
    }
    FenetrePrincipale.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
    #ifndef HEADER_FENETREPRINCIPALE
    #define HEADER_FENETREPRINCIPALE
     
    #include <QtGui>
     
    class FenetrePrincipale : public QMainWindow
    {
        public:
            FenetrePrincipale();
     
    	private:
    		//PARTIE 1 MENU
    		QMenu *menuFichier;
    			QAction *actionOpen;
    			QAction *actionClose;
    			QAction *actionSave;
    			QAction *actionSaveAs;
    			QAction *actionExit;
     
    		QMenu *menuEdition;
    			QAction *actionUndo;
    			QAction *actionRedo;
    			QAction *actionCut;
    			QAction *actionCopy;
    			QAction *actionPaste;
    			QAction *actionSelectAll;
     
    		QMenu *menuAffichage;
    			QAction *actionSatusBar;
    			QAction *actionToolsBar;
    		QMenu *menuOutils;
    			QMenu *sousMenuLangue;
    			QAction *actionFrancais;
    			QAction *actionAnglais;
    		QMenu *menuAide;
    			QAction *actionAbout;
     
    		QToolBar *toolBar;
     
    		//PARTIE 2 ZONE CENTRALE :
    		//On modifie en mdi :
    		/*QMdiArea *zoneCentrale;
     
    		//On ajoute la sous fenetre 1 :
    		QMdiSubWindow *sousFenetre1;
    			QTextEdit *zoneTexte1;
    		//On ajoute la sous fenetre 2 :
    		QMdiSubWindow *sousFenetre2;
    			QTextEdit *zoneTexte2;*/
    };
     
    #endif
    FenetrePrincipale.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
    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
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    #include "FenetrePrincipale.h"
     
    FenetrePrincipale::FenetrePrincipale() : QMainWindow()
    {
    	setWindowTitle("Editim - v1");
    	setMinimumSize(450, 400);
    	//PARTIE 1 MENU
     
        menuFichier = menuBar()->addMenu("&Fichier");
    		//Action du menu Fichier :
    		actionOpen = menuFichier->addAction("Ouvrir");
    		actionClose = menuFichier->addAction("Fermer");
    		menuFichier->addSeparator();
    		actionSave = menuFichier->addAction("Enregistrer");
    		actionSaveAs = menuFichier->addAction("Enregistrer Sous ...");
    		menuFichier->addSeparator();
    		actionExit = menuFichier->addAction("Quitter");
     
    		//Racourci des Action :
    		actionOpen->setShortcut(QKeySequence("Ctrl+O"));
    		actionClose->setShortcut(QKeySequence("Ctrl+F"));
    		actionSave->setShortcut(QKeySequence("Ctrl+S"));
    		actionSaveAs->setShortcut(QKeySequence("Ctrl+Shift+S"));
    		actionExit->setShortcut(QKeySequence("Ctrl+Q"));
     
    		//Icones :
    		actionOpen->setIcon(QIcon("images/open.png"));
    		actionClose->setIcon(QIcon("images/close.png"));
    		actionSave->setIcon(QIcon("images/save.png"));
    		actionSaveAs->setIcon(QIcon("images/save-as.png"));
    		actionExit->setIcon(QIcon("images/exit.png"));
     
     
        menuEdition = menuBar()->addMenu("&Edition");
    		//Action du menu Edition :
    		actionUndo = menuEdition->addAction("Annuler");
    		actionRedo = menuEdition->addAction("Rétablir");
    		menuEdition->addSeparator();
    		actionCut = menuEdition->addAction("Couper");
    		actionCopy = menuEdition->addAction("Copier");
    		actionPaste = menuEdition->addAction("Coller");
    		menuEdition->addSeparator();
    		actionSelectAll = menuEdition->addAction("Tout sélectionner");
    		//Racourci des Actions :
    		actionUndo->setShortcut(QKeySequence("Ctrl+Z"));
    		actionRedo->setShortcut(QKeySequence("Ctrl+Y"));
    		actionCut->setShortcut(QKeySequence("Ctrl+X"));
    		actionCopy->setShortcut(QKeySequence("Ctrl+C"));
    		actionPaste->setShortcut(QKeySequence("Ctrl+V"));
    		actionSelectAll->setShortcut(QKeySequence("Ctrl+A"));
    		//Icones :
    		actionUndo->setIcon(QIcon("images/undo.png"));
    		actionRedo->setIcon(QIcon("images/redo.png"));
    		actionCut->setIcon(QIcon("images/cut.png"));
    		actionCopy->setIcon(QIcon("images/copy.png"));
    		actionPaste->setIcon(QIcon("images/paste.png"));
     
        menuAffichage = menuBar()->addMenu("&Affichage");
        	//Action du menu d'Affichage :
        	actionSatusBar = menuAffichage->addAction("Bar de status");
        	actionToolsBar = menuAffichage->addAction("Bar d'outils");
    		//On Lui dit qu'il est cochable
        	actionSatusBar->setCheckable(true);
        	actionToolsBar->setCheckable(true);
    		//on initialise si elle son coché ou non :
        	actionSatusBar->setChecked(true);
        	actionToolsBar->setChecked(false);
     
        menuOutils = menuBar()->addMenu("&Outils");
    		//On crée un sous menu :
    		sousMenuLangue = menuOutils->addMenu("Langue");
    		//On crée les action dans le sous menu :
    		actionFrancais = sousMenuLangue->addAction("Français");
    		actionAnglais = sousMenuLangue->addAction("Anglais");
     
        menuAide = menuBar()->addMenu("&Aide");
        	//On crée l'action :
        	actionAbout = menuAide->addAction("A Propos de Editim");
        	//On crée le racourci :
        	actionAbout->setShortcut(QKeySequence("F1"));
        	actionAbout->setIcon(QIcon("images/about.png"));
     
    	toolBar = addToolBar("Bar d'outils");
    	toolBar->addAction(actionExit);
     
    	//On connect les signaux au slot :
    	connect(actionExit, SIGNAL(triggered()), qApp, SLOT(quit()));
     
     
    	//PARTIE 2 ZONE CENTRALE :
    	/*
    	zoneCentrale = new QMdiArea;
    	zoneCentrale->setViewMode(QMdiArea::TabbedView);//On modifie les sous fenetre en onglet
     
        zoneTexte1 = new QTextEdit;
        zoneTexte2 = new QTextEdit;
     
        sousFenetre1 = zoneCentrale->addSubWindow(zoneTexte1);
        sousFenetre2 = zoneCentrale->addSubWindow(zoneTexte2);
     
    	sousFenetre1->setWindowTitle("Sous Fenêtre 1");
    	sousFenetre2->setWindowTitle("Sous Fenêtre 2");
     
        setCentralWidget(zoneCentrale);
        */
    }
    (Vous remarquerez que je suis que au début du programme et je n'est pas fini la construction de la tools bar. ect...)
    Merci à tous ce qui m'aideront.
    Timiti29

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Mars 2010
    Messages
    199
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 199
    Par défaut
    Hello,

    pourrais-tu préciser ta question ou indiquer quel problème rencontres-tu ?

    Pour la vue en onglet, jette un oeil du coté de QMdiArea ( http://qt.developpez.com/doc/latest/qmdiarea.html ) en mode TabbedView.

    Ensuite, tu peux aussi jeter un oeil à QScintilla ( http://www.riverbankcomputing.co.uk/...cintilla/intro ), un framework pour editeur de texte à intégrer dans une appli Qt.

    Après, sans plus de précision (et sans faire ton appli à ta place), difficile de t'aider, donc n'hésite pas à poser des questions plus précises.

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Mars 2010
    Messages
    199
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 199
    Par défaut
    En plus, je viens de voir qu'un tuto sur QScintilla vient d'être mis en ligne sur developpez.com: http://qt.developpez.com/tutoriels/QScintilla/

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 156
    Billets dans le blog
    151
    Par défaut
    Bonjour,

    Je propose la QTabBar pour les onglets.
    QFileDialog pour ouvrir une fenetre de selection de fichier ... une fois le fichier choisi, le programme à la main ... et on crée le nouvel onglet.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Membre confirmé Avatar de timiti29
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 95
    Par défaut
    Salut à tous !
    Je voit que vous me proposer la classe QTabBar pour les onglet !
    Mais je crois qu'il y a une fonction pour mettre en onglet non ?
    C'est quoi la différence entre QTabBar ; QTabWidget ; et "setViewMode(QMdiArea::TabbedView)" ?
    Car je ne sais pas !
    Merci.
    Timiti29

  6. #6
    Membre confirmé Avatar de timiti29
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 95
    Par défaut
    Me revoilà !
    En faite Je voulais savoir comment je peut faire ma fonction "OpenFile"
    de façon a crée un subWindow avec un QTextEdit dedans, à chaque foi que je j'exécuterais ma fonction à l'aide du menu ouvrir.
    Ce qui me pose problème c'est que je ne sais pas comment mi prendre !
    Car Je doit donné un nom à mon pointeur de la fenêtre et pour mon QTextEdit.
    comment doit-je mi prendre ?
    Timiti29

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

Discussions similaires

  1. View RCP et éditeur de texte
    Par mague dans le forum Eclipse Platform
    Réponses: 3
    Dernier message: 19/05/2006, 16h13
  2. [AJAX] éditeur de texte
    Par Death83 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/03/2006, 13h26
  3. [EDI] Editeur de texte
    Par ibtisss dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 05/10/2005, 14h51
  4. recherche composant éditeur de texte
    Par Bruno75 dans le forum Composants VCL
    Réponses: 6
    Dernier message: 15/09/2005, 10h33
  5. [PDE] Comment ajouter un éditeur de texte à mon projet ?
    Par simsky dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 29/06/2005, 10h40

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