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

Un livre de Wikilivres.
Contenu supprimé Contenu ajouté
Athozus (discussion | contributions)
→‎Découvrir le projet : Complétion ; suppression de la notification (je veux être sûr que ça marche avant de mettre).
Athozus (discussion | contributions)
→‎Ouvrir un fichier : Correction du code
Ligne 8 : Ligne 8 :
=== Ouvrir un fichier ===
=== Ouvrir un fichier ===
Nous allons donc commencer par l'ouverture du fichier. On utilise la classe <code>QFile</code>. Pour cela, on va ouvrir le fichier avec la boîte de dialogue <code>QFileDialog</code>.<syntaxhighlight lang="c++" line="1" start="1">
Nous allons donc commencer par l'ouverture du fichier. On utilise la classe <code>QFile</code>. Pour cela, on va ouvrir le fichier avec la boîte de dialogue <code>QFileDialog</code>.<syntaxhighlight lang="c++" line="1" start="1">
QString fileContent;
QString *fileName = QFileDialog::getOpenFileName(this, "Ouvrir un fichier", QString());
QString fileName = QFileDialog::getOpenFileName(this, "Ouvrir", QDir::homePath());
QFile *file = new QFile(fileName);
QFile *file = new QFile(fileName);
</syntaxhighlight>
</syntaxhighlight>


=== Lire le fichier ===
=== 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 <code>QTextStream</code>.<syntaxhighlight lang="c++" line="1" start="1">
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 <code>QString</code>.<syntaxhighlight lang="c++" line="1" start="1">
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
if(file->open(QIODevice::ReadOnly | QIODevice::Text))
{
return;
fileContent = file->readAll();
file->close();
QTextStream fileContent(file);
}
</syntaxhighlight>À présent, je vous laisse, puisqu'on va utiliser une classe que vous connaissez déjà, <code>QTextEdit</code>.
</syntaxhighlight>À présent, je vous laisse, puisqu'on va utiliser une classe que vous connaissez déjà, <code>QTextEdit</code>.



Version du 5 octobre 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

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

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.