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
| // fichier .cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
FenPrincipale::FenPrincipale()
{
QMenu *menuFichier = menuBar()->addMenu("&Fichier");
ouvrir = new QAction("&Ouvrir...", this);
menuFichier->addAction(ouvrir);
enreg = new QAction("&Enregistrer sous...", this);
menuFichier->addAction(enreg);
enreg->setIcon(QIcon("101.png"));
Imprimer = new QAction("&Imprimer", this);
menuFichier->addAction(Imprimer);
Imprimer->setIcon(QIcon("37.png"));
QAction *actionQuitter = new QAction("&Quitter", this);
menuFichier->addAction(actionQuitter);
actionQuitter->setShortcut(QKeySequence("Ctrl+Q"));
actionQuitter->setIcon(QIcon("quitter.png"));
QMenu *menuEdition = menuBar()->addMenu("&Edition");
choixPolice2 = new QAction("&Police...", this);
menuEdition->addAction(choixPolice2);
QMenu *menuAffichage = menuBar()->addMenu("&Affichage");
QAction *afficherBE = new QAction("&Barre d' état", this);
afficherBE->setCheckable(true);
afficherBE->setChecked(true);
menuAffichage->addAction(afficherBE);
QToolBar *toolBarFichier = addToolBar("Fichier");
toolBarFichier->addAction(actionQuitter);
toolBarFichier->addAction(enreg);
toolBarFichier->addSeparator();
QFontComboBox *choixPolice = new QFontComboBox;
toolBarFichier->addWidget(choixPolice);
choixPolice->setEditable(false);
QStatusBar *barreEtat = statusBar();
barreEtat->showMessage("Prêt");
actionQuitter->setStatusTip("Quitte le programme");
enreg->setStatusTip("Enregistré!");
QMdiArea *zoneCentrale = new QMdiArea;
zoneTexte1 = new QTextEdit;
//QMdiSubWindow *sousFenetre1 = zoneCentrale->addSubWindow(zoneTexte1);
zoneCentrale->addSubWindow(zoneTexte1);
zoneCentrale->setViewMode(QMdiArea::TabbedView);
QObject::connect(actionQuitter, SIGNAL(triggered()), qApp, SLOT(quit()));
QObject::connect(choixPolice2, SIGNAL(triggered()), this, SLOT(ouvrirDialogue()));
QObject::connect(choixPolice, SIGNAL(currentFontChanged(QFont)), zoneTexte1, SLOT(setCurrentFont(QFont)));
QObject::connect(enreg, SIGNAL(triggered()), this, SLOT(Save()));
QObject::connect(afficherBE, SIGNAL(stateChanged(int)), barreEtat, SLOT(hide()));
QObject::connect(ouvrir, SIGNAL(triggered()), this, SLOT(Open()));
QObject::connect(Imprimer, SIGNAL(triggered()), this, SLOT(imprimerTexte()));
setCentralWidget(zoneCentrale);
}
void FenPrincipale::ouvrirDialogue()
{ bool ok = false;
QFont police = QFontDialog::getFont(&ok, zoneTexte1->font(), this, "Choisissez une police");
if (ok)
{ zoneTexte1->setFont(police);
}
}
void FenPrincipale::Save()
{ QString fichier = QFileDialog::getSaveFileName(this, "Enregistrer un fichier", ".","Page Web(*.html *.htm)");
if (fichier.isEmpty()) return;
QFile file(fichier);
if (file.open(QFile::WriteOnly | QFile::Truncate)) // si l'ouverture s'est bien passée
{
// permet d'écrire dans le fichier
QTextStream out(&file);
out << zoneTexte1->toHtml();
file.close();
}
else
QMessageBox::warning(this,"Erreur","Une erreur s'est prosuite lors de l'ouverture du fichier");
}
void FenPrincipale::Open()
{ QString fichier = QFileDialog::getOpenFileName(this, "Ouvrir un fichier", QString(), "Page Web(*.html *.htm)");
QFile file(fichier);
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
return;
zoneTexte1->setText(QString(file.readAll()));
}
void FenPrincipale::imprimerTexte()
{ QPrinter printer;
QTextDocument doc;
QString TE = zoneTexte1->toHtml();
QPrintDialog *dialog = new QPrintDialog(&printer, this);
doc.setHtml(TE);
dialog->setWindowTitle(tr("Print Document"));
if (zoneTexte1->textCursor().hasSelection())
dialog->addEnabledOption(QAbstractPrintDialog::PrintSelection);
if (dialog->exec() == QDialog::Accepted)
doc.print(&printer);
} |