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 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
| #include "FenPrincipale.h"
FenPrincipale::FenPrincipale() // constructeur
{
/* caracteristique fenetre */
resize(600,400);
/* creation du menu */
// menu
m_menuFichier = menuBar()->addMenu("&Fichier");
m_menuEdition = menuBar()->addMenu("&Edition");
m_menuAffichage = menuBar()->addMenu("&Affichage");
//action
m_actionNouveau = m_menuFichier->addAction("&Nouveau");
m_actionNouveau->setShortcut(QKeySequence("Ctrl+N"));
m_actionNouveau->setIcon(QIcon(QCoreApplication::applicationDirPath()+"/images/nouveau.png"));
m_actionOuvrir = m_menuFichier->addAction("&Ouvrir");
m_actionOuvrir->setShortcut(QKeySequence("Ctrl+O"));
m_actionOuvrir->setIcon(QIcon(QCoreApplication::applicationDirPath()+"/images/ouvrir.png"));
m_actionEnregistrer = m_menuFichier->addAction("&Enregistrer");
m_actionEnregistrer->setShortcut(QKeySequence("Ctrl+S"));
m_actionEnregistrer->setIcon(QIcon(QCoreApplication::applicationDirPath()+"/images/enregistrer.png"));
m_actionEnregistrerSous = m_menuFichier->addAction("&Enregistrer sous");
m_actionEnregistrerSous->setShortcut(QKeySequence(Qt::SHIFT + Qt::CTRL + Qt::Key_Q));
m_actionQuitter = m_menuFichier->addAction("&Quitter");
m_actionQuitter->setShortcut(QKeySequence("Ctrl+Q"));
m_actionQuitter->setIcon(QIcon(QCoreApplication::applicationDirPath()+"/images/quitter.png"));
// creation de la barre d'outil
m_toolBarFichier = addToolBar("bar d'outil");
m_toolBarFichier->addAction(m_actionNouveau);
m_toolBarFichier->addAction(m_actionOuvrir);
m_toolBarFichier->addAction(m_actionEnregistrer);
m_toolBarFichier->addAction(m_actionQuitter);
m_toolBarFichier->addSeparator();
// creation de la zone centrale
m_zoneCentrale = new QMdiArea;
setCentralWidget(m_zoneCentrale);
// creation de la barre d'etat
m_barreEtat = statusBar();
m_actionQuitter->setStatusTip("Quitte le programme ...");
m_actionNouveau->setStatusTip("Ouvre un nouveau fichier ...");
m_actionOuvrir->setStatusTip("Ouvrir un fichier deja existant ...");
m_actionEnregistrer->setStatusTip("Enregistrer le fichier ...");
m_actionEnregistrerSous->setStatusTip("Enregistrer le fichier à un emplacement precis ...");
// connection des actions et boutons
connect(m_actionQuitter, SIGNAL(triggered()),qApp,SLOT(quit()));
connect(m_actionNouveau, SIGNAL(triggered()),this,SLOT(nouveau()));
connect(m_actionOuvrir, SIGNAL(triggered()),this,SLOT(ouvrir()));
connect(m_actionEnregistrer, SIGNAL(triggered()),this,SLOT(enregistrer()));
connect(m_actionEnregistrerSous, SIGNAL(triggered()),this,SLOT(enregistrerSous()));
// initialisation de quelque atribue
m_chemin = new QString;
}
void FenPrincipale::nouveau()
{
*m_chemin = "";
m_zoneCentrale = new QMdiArea;
m_zoneTexte1 = new QTextEdit;
m_sousFenetre1 = m_zoneCentrale->addSubWindow(m_zoneTexte1);
setCentralWidget(m_zoneCentrale);
}
void FenPrincipale::ouvrir()
{
*m_chemin = QFileDialog::getOpenFileName(this, "Ouvrir un fichier", QString(), "Fichier Texte (*.txt)");
m_zoneCentrale = new QMdiArea;
m_zoneTexte1 = new QTextEdit;
m_texte = new QString;
QFile fichier(*m_chemin);
if(fichier.open(QIODevice::ReadOnly | QIODevice::Text))
{
*m_texte = fichier.readAll();
fichier.close();
}
else *m_texte = "Impossible d'ouvrir le fichier !";
m_zoneTexte1->setText(*m_texte);
m_sousFenetre1 = m_zoneCentrale->addSubWindow(m_zoneTexte1);
setCentralWidget(m_zoneCentrale);
}
void FenPrincipale::enregistrer()
{
if(m_chemin->isEmpty())
{
*m_chemin = QFileDialog::getSaveFileName(this, "Ouvrir un fichier", QString(), "Fichier Texte (*.txt)");
}
*m_texte = m_zoneTexte1->toPlainText();
QFile fichier(*m_chemin);
if(fichier.open(QIODevice::WriteOnly | QIODevice::Text))
{
QTextStream flux(&fichier);
flux << *m_texte;
fichier.close();
}
else QMessageBox::critical(NULL,"Erreur","Impossible d'enregistrer !");
}
void FenPrincipale::enregistrerSous()
{
*m_texte = m_zoneTexte1->toPlainText();
*m_chemin = QFileDialog::getSaveFileName(this, "Ouvrir un fichier", QString(), "Fichier Texte (*.txt)");
QFile fichier(*m_chemin);
if(fichier.open(QIODevice::WriteOnly | QIODevice::Text))
{
QTextStream flux(&fichier);
flux << *m_texte;
fichier.close();
}
else QMessageBox::critical(NULL,"Erreur","Impossible d'enregistrer !");
} |
Partager