begin process at 2010 03 19 04:39:46
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Linux

 > 

GUI

 > 

[Qt] Problème d'enregistrement de fichiers


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

[Qt] Problème d'enregistrement de fichiers

samedi 4 juillet 2009 à 15:44:36 | [Qt] Problème d'enregistrement de fichiers

magicienap

Bonjour à tous,

Je suis un débutant en programmation C++ et Qt.
J'essaie de me créer un éditeur de texte.

Je suis capable d'ouvrir et d'afficher un fichier, mais pas de l'enregistrer. Pourtant, mon code compile.

Voici mon code source :
Note : J'ai déclaré la zoneTexte et texteFichier dans le header.

/*
 *FenPrincipale.cpp
*/

#include "FenPrincipale.h"

FenPrincipale::FenPrincipale()
{
  
    //Menus
    QMenu *menuFichier = menuBar()->addMenu("&Fichier");

    //Actions
    //Ouvrir
    QAction *actionOuvrir = menuFichier->addAction("&Ouvrir");
    actionOuvrir->setShortcut(QKeySequence(QKeySequence::Open));
    actionOuvrir->setIcon(QIcon("images/icones/ouvrir16.png"));
    actionOuvrir->setStatusTip("Ouvre un fichier existant");

    connect(actionOuvrir, SIGNAL(triggered()), this, SLOT(ouvrir()));

    //Enregistrer
    QAction *actionEnregistrer = menuFichier->addAction("&Enregistrer");
    actionEnregistrer->setShortcut(QKeySequence(QKeySequence::Save));
    actionEnregistrer->setIcon(QIcon("images/icones/enregistrer16.png"));
    actionEnregistrer->setStatusTip("Enregistre le fichier courant");

    connect(actionEnregistrer, SIGNAL(triggered()), this, SLOT(enregistrer()));

     //Zone centrale
    QWidget *zoneCentrale = new QWidget;

    zoneTexte = new QTextEdit;

    QHBoxLayout *layoutCentral = new QHBoxLayout;
    layoutCentral->addWidget(zoneTexte);
    zoneCentrale->setLayout(layoutCentral);

    setCentralWidget(zoneCentrale);
}

void FenPrincipale::ouvrir()
{
    QString x = QFileDialog::getOpenFileName(this, "Ouvrir un fichier", QString(), "Fichier textes (*.txt)");
    QFile fichier(x);

    texteFichier = new QString;

    if(fichier.open(QIODevice::ReadWrite | QIODevice::Text))
    {
         *texteFichier = fichier.readAll();
    }
    else QMessageBox::critical(this, "Ouverture du fichier", "Impossible d'ouvrir le fichier.");

    FenPrincipale::zoneTexte->setText(*texteFichier);
    FenPrincipale::zoneTexte->show();
}

void FenPrincipale::enregistrer()
{
    QString x = QFileDialog::getSaveFileName(this, "Enregistrer un fichier", QString(), "Fichiers textes (*.txt)");
    QFile fichier(x);

    QString texte = FenPrincipale::zoneTexte->toPlainText();

    QTextStream flux(&fichier);
    flux << texte;

    fichier.close();

    exit(0);
}

samedi 4 juillet 2009 à 20:17:52 | Re : [Qt] Problème d'enregistrement de fichiers

magicienap

Réponse acceptée !
J'ai posté sur un autre forum.

On m'a répondu que c'est parce que je n'avais pas ouvert le fichier sur lequel je souhaitais enregistrer le texte. Effectivement, c'était le cas. Voir


Cette discussion est classée dans : fichier, ouvrir, enregistrer, zonetexte, fenprincipale


Répondre à ce message

Sujets en rapport avec ce message

Enregistrer/ouvrir fichier vc++ 6 [ par apientry ] Au secours!J'ai un gros probleme, je n'arrive pas à enregistrer un fichier (txt par ex), comment faire? je sais comment apeler la boite de dialogue, G Ouvrir un fichier excel deja enregistrer ss VC++ [ par kalf2000 ] salut a tous,voila je voudrai faire un truc très simple, je veux que lorsque je click sur un bouton, un fichier excel (.xls) qui contien deja des info Ouvrir les fenêtres "Enregistrer sous" et "Ouvrir un fichier" [ par olivier007700 ] Bonjour,J'ai cherché sur plusieurs sites la réponse à ma question, mais je n'ai pas pu la trouver. Pourtant, ça ne doit pas être sorcier ;-)Voilà : Co Ouvrir un fichier grace au déplacer poser??? [ par nepomuk ] Salut,Comme on peut le faire dans certains logiciels (Windows Media Player, Nero ...) j'aimerai pouvoir "ouvrir" en les faisant qglisser dans mon appl fopen() => ouvrir une URL [ par yugiohjcj ] Bonjour,je programme en C et si j'ai du mal à progresser, c'est parce que je ne veux pas avoir un beau résultat sans savoir comment je l'ai obtenu.Ce impossible d'enregistrer un nom de fichier [ par bonmau ] Bonjour,J'utilise VisualC++ et MFC.A partir d'une boite de dialogue, j'appelle une boite de dialogue commun, en l'occurence de type CFileDialog,ce qui ouvrir un fichier avec un prog defini (pas par default) [ par enigmatiqk ] bon ba je me suis balader de partt, et pour ouvrir un fichier jai capter qu'il falli utilisé shellexecute..., seulement voila, ca ouvre un fichier par Afficher le fichier 'ouvrir' directement dans une boite de dialogue [ par bethany ] Bonjour,J'aimerai savoir comment je peux faire apparaitre la meme chose que la boite ouvrir (je ne veux pas un CFileOpen) dans une boite de dialogue s ouvrir et ecrire dans un fichier txt avec c++builder [ par lgsama ] Salut tout le monde,Je suis un débutant de c++Builder et j'ai besoin d'aide..voilà mon problème: j'arrive pas a ouvrir un fichier .txt à partir d'un Ouvrir flux sur fichier dont le chemin contient des espaces (besoin d'aide:))) [ par vychnou ] Es ce que quelqun saurait comment ouvrir un flux sur un fichier dont le nom ou le chemin contient des espaces?ex:string destination="c:\program files\


Nos sponsors


Sondage...

Comparez les prix


HTC Magic

Entre 429€ et 429€

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,125 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales