IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Discussion :

Enregistrer le contenu d'un QMdiSubWindow qui contient un QTextEdit

  1. #1
    Membre expérimenté

    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 685
    Points : 1 418
    Points
    1 418
    Par défaut Enregistrer le contenu d'un QMdiSubWindow qui contient un QTextEdit
    Bonjour,


    J'ai un petit problème (je ne connais pas trop Qt je m'y suis mis y'a deux jours) : je ne trouve pas comment récupérer sous forme de QString (ou sous une autre forme) le contenu des QMdiSubWindow que j'ouvre dans ma "zoneCentrale" de type QMdiArea.

    voici le slot que j'appelle lorsque le bouton "enregistrer sous..." est "triggered"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    /*slot NewFile()
    void NewFile()
    {
        QTextEdit* zoneTexte = new QTextEdit();
        zoneTexte->setBaseSize(size());
     
        QMdiSubWindow *newWindow = zoneCentrale->addSubWindow(zoneTexte);
     
        newWindow->show();
    }
    */
    void Editeur::SaveFile( )
    {
        //Choix du chemin d'enregistrement
        QString fichier = QFileDialog::getSaveFileName(this, "Enregistrer un fichier", QString(), "Text files (*.txt)");
     
        //Enregistrement
        QFile sauvegarde(fichier);
        if (sauvegarde.open(QFile::WriteOnly))
        {
            QTextStream contenu(&fichier);
            QTextEdit* recup = qobject_cast<QTextEdit*>(zoneCentrale->activeSubWindow()->widget());
            contenu << recup->ToPlainText();
        }
    }

    Si vous avez besoin d'autres infos demandez moi ^^

    Merci d'avance

    Au fait, j'ai tenté un dynamic_cast car il me semblait que je risquai de perdre la spécialisation, mais pas de résultat positif..
    Nullius in verba

  2. #2
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Points : 1 738
    Points
    1 738
    Par défaut
    Bonjour,

    QMdiSubWindow n'est qu'un conteneur, et je te laisse lire la doc : http://qt-project.org/doc/qt-4.8/qmd...l#addSubWindow (qui explique ce qu'il se passe lorsque le paramètre n'est pas un QMdiSubWindow).

    Donc pour le récupérer avec widget(), utilise plutôt qobject_cast.

  3. #3
    Membre expérimenté

    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 685
    Points : 1 418
    Points
    1 418
    Par défaut
    Citation Envoyé par Troudhyl Voir le message
    Bonjour,

    QMdiSubWindow n'est qu'un conteneur, et je te laisse lire la doc : http://qt-project.org/doc/qt-4.8/qmd...l#addSubWindow (qui explique ce qu'il se passe lorsque le paramètre n'est pas un QMdiSubWindow).

    Donc pour le récupérer avec widget(), utilise plutôt qobject_cast.
    Merci pour les explications, en effet j'avais déjà vu la documentation.

    Ce que tu proposes avec le "cast Qt" est exactement ce que j'avais fait avec les cast classiques. Je viens de tester, je n'ai toujours aucun contenu enregistré dans mon fichier.

    j'ai édité mon premier post pour montrer ce que je fais.

    Merci encore pour ton aide


    Edit : c'est bon résolu, je passais mon "filepath" au TextStream au lieu de lui passer mon QFile
    Nullius in verba

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 08/05/2015, 09h11
  2. Réponses: 2
    Dernier message: 28/08/2009, 13h30
  3. Réponses: 3
    Dernier message: 28/11/2008, 08h21
  4. Appeler une page qui contient un contenu actif
    Par mbouskia dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 17/05/2008, 12h34
  5. Réponses: 6
    Dernier message: 08/05/2008, 16h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo