« Programmation Qt/TP : un éditeur de texte » : différence entre les versions

Un livre de Wikilivres.
Contenu supprimé Contenu ajouté
Athozus (discussion | contributions)
→‎Ouvrir un fichier : Correction du code
Athozus (discussion | contributions)
Refonte
Ligne 3 : Ligne 3 :
Dans ce TP, vous apprendrez à créer un éditeur de texte.
Dans ce TP, vous apprendrez à créer un éditeur de texte.


== Découvrir le sujet ==
== Découvrir le sujet et organiser son projet ==
{{Danger|Faire l'organisation du projet est très important. En effet, si vous ne le faites pas, vous risqueriez d'écrire des lignes de code inutiles ainsi que de faire des doublons.}}
Avant d'attaquer ce TP, il est important de connaître le sujet.

Avant d'attaquer ce TP, il est important de connaître le sujet en détail.

=== Cahier des charges ===
Nous allons créer un cahier des charges pour connaître ce dont notre éditeur de texte disposera.

* '''Éditer un document'''
* '''Ouvrir / enregistrer un document'''

* À propos du logiciel et de Qt
* Rechercher
* Statistiques du document

{{Information (Espace principal)|Les deux premiers éléments peuvent vous paraître bêtes, mais il est important de bien connaître la '''fonction principale''' d'un programme.}}

Cela peut vous paraître rien du tout, mais c'est déjà quelque chose de savoir faire ça !

=== Variables et attributs ===
Je vous propose de faire du <code>QTextEdit</code> un attribut de la classe <code>MainWindow</code> pour qu'il soit facilement accessible par les méthodes de notre programme.

=== Fonctions et méthodes ===
Voici une liste utile de fonctions et méthodes nécessaires pour la réalisation du programme.

* '''<code>void openDocument()</code>''' : Ouvrir un document.
* '''<code>void saveDocument()</code>''' : Enregistrer un document.
* <code>'''void about()'''</code> : À propos du logiciel.
* '''<code>void find()</code>''' : Rechercher.
* '''<code>void stats()</code>''' : Statistiques du document.

== Aides ==


=== Ouvrir un fichier ===
=== Ouvrir un fichier ===

Version du 4 décembre 2019 à 17:46

En travauxlink={{{link}}}

Cette page est en travaux. Tant que cet avis n'aura pas disparu, veuillez en considérer le plan et le contenu encore incomplets, temporaires et sujets à caution. Si vous souhaitez participer, il vous est recommandé de consulter sa page de discussion au préalable, où des informations peuvent être données sur l'avancement des travaux.

Dans ce TP, vous apprendrez à créer un éditeur de texte.

Découvrir le sujet et organiser son projet

Faire l'organisation du projet est très important. En effet, si vous ne le faites pas, vous risqueriez d'écrire des lignes de code inutiles ainsi que de faire des doublons.px

Avant d'attaquer ce TP, il est important de connaître le sujet en détail.

Cahier des charges

Nous allons créer un cahier des charges pour connaître ce dont notre éditeur de texte disposera.

  • Éditer un document
  • Ouvrir / enregistrer un document
  • À propos du logiciel et de Qt
  • Rechercher
  • Statistiques du document

Logo Les deux premiers éléments peuvent vous paraître bêtes, mais il est important de bien connaître la fonction principale d'un programme.


Cela peut vous paraître rien du tout, mais c'est déjà quelque chose de savoir faire ça !

Variables et attributs

Je vous propose de faire du QTextEdit un attribut de la classe MainWindow pour qu'il soit facilement accessible par les méthodes de notre programme.

Fonctions et méthodes

Voici une liste utile de fonctions et méthodes nécessaires pour la réalisation du programme.

  • void openDocument() : Ouvrir un document.
  • void saveDocument() : Enregistrer un document.
  • void about() : À propos du logiciel.
  • void find() : Rechercher.
  • void stats() : Statistiques du document.

Aides

Ouvrir un fichier

Nous allons donc commencer par l'ouverture du fichier. On utilise la classe QFile. Pour cela, on va ouvrir le fichier avec la boîte de dialogue QFileDialog.

QString fileContent;
QString fileName = QFileDialog::getOpenFileName(this, "Ouvrir", QDir::homePath());
QFile *file = new QFile(fileName);

Lire le fichier

C'est très simple. On va vérifier que le fichier n'a pas de problèmes, puis on va mettre le contenu dans un QString.

if(file->open(QIODevice::ReadOnly | QIODevice::Text))
{
    fileContent = file->readAll();
    file->close();
}

À présent, je vous laisse, puisqu'on va utiliser une classe que vous connaissez déjà, QTextEdit.

Enregistrer un fichier

QString file = QFileDialog::getSaveFileName(this, "Enregistrer un fichier", QString());

Correction

Maintenant que vous savez tout, voici la correction.