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

Qt Discussion :

Afficher fichier texte ?


Sujet :

Qt

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 223
    Points : 193
    Points
    193
    Par défaut Afficher fichier texte ?
    Bonjour.

    Je souhaiterais assigner au bouton d'une message box, l'ouverture d'un fichier dans un éditeur de texte.

    Voila mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    QMessageBox msgBox;
    msgBox.setWindowTitle("Informations");
    msgBox.setText("Choix ?");
    msgBox.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel | QMessageBox::Open);
    int ret = msgBox.exec();
     
    if(ret==QMessageBox::Open)
    {
    // VISUALISER LE CONTENU D'UN FICHIER
    }
    ...
    Bien sur, l'appui sur ce bouton ne doit pas fermer ma MessageBox.

    Savez vous comment je peut m'y prendre ?
    Pour information, je développe sous Windows.

    Cordialement,
    PKO
    Quand c'est trop, c'est pas bon !

  2. #2
    Membre émérite
    Avatar de ymoreau
    Homme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Septembre 2005
    Messages
    1 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 154
    Points : 2 834
    Points
    2 834
    Par défaut
    Je crois que la valeur de retour n'est assignée qu'après l'appui d'un bouton de la QMessageBox et sa fermeture. Donc tu ne peux pas avoir de valeur de retour en laissant la boite affichée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int ret = msgBox.exec();
    Tu cherches à poser une question à l'utilisateur et lui permettre d'ouvrir un fichier texte AVANT qu'il ne valide son choix c'est ça ? Soit tu enchaines 2 message-box ce qui est pas très ergonomique (d'abord choix de l'ouverture du fichier ou non, puis ensuite choix de l'utilisateur), soit tu fais ta propre boîte de dialogue (ce qui est sûrement le mieux pour personnaliser à volonté).

    Je ne crois pas qu'on puisse redéfinir les actions des boutons d'une QMessageBox, mais je peux me tromper.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 223
    Points : 193
    Points
    193
    Par défaut
    Merci.

    Bon, pour la fermeture de la Message Box, je trouverais un moyen.
    Mais comment faire pour Afficher mon fichier texte dans un editeur lors de l'appui sur un bouton (quel qu'il soit) ?

    Cordialement,
    PKO
    Quand c'est trop, c'est pas bon !

  4. #4
    Membre actif Avatar de cayou66
    Inscrit en
    Décembre 2008
    Messages
    286
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Décembre 2008
    Messages : 286
    Points : 273
    Points
    273
    Par défaut
    Salut,
    il suffit de relier ce bouton à un slot perso Dans lequel tu aura ton traitement (celui que tu veux).

    Dans ton cas, si tu ne veux pas que la QMessageBox se ferme, c'est que tu n'as pas besoin d'un QMessageBox. As-tu pensé faire ta propre fenêtre? Qui hérite par exemple d'une QFrame, ou QWidget simplement. Tu met un bouton dedans, et tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    connect(monBouton,SIGNAL(clicked()),this, SLOT(lancerEditeurTexte()));

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 223
    Points : 193
    Points
    193
    Par défaut
    Bonjour.

    En fait, le problème n'est pas de fermer ou non ma Message Box. Ca, je saurais le gérer. Le truc, c'est que je ne sait pas comment faire pour afficher un fichier dans un éditeur

    Comment dois-je m'y prendre ?

    Merci de votre aide.

    Cordialement,
    PKO
    Quand c'est trop, c'est pas bon !

  6. #6
    Membre émérite
    Avatar de ymoreau
    Homme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Septembre 2005
    Messages
    1 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 154
    Points : 2 834
    Points
    2 834
    Par défaut
    Hum là ça dépend, soit tu parles d'un éditeur interne à ton application, et là c'est un peu compliqué mais je sais que Qt fournit pas mal de choses pour créer un éditeur de texte. Soit tu veux simplement ouvrir le fichier dans le système d'exploitation, comme un double clic quoi. A ce moment là va voir la classe QDesktopServices qui permet de faire ouvrir un fichier par l'OS selon les préférences de l'OS (externe à ton appli donc, portable et multi-plateforme grâce à Qt), c'est à dire par l'application par défaut de l'utilisateur pour le fichier.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 223
    Points : 193
    Points
    193
    Par défaut
    YoniBlond = Excellent. C'est tout à fait ce que je cherchais. Sujet résolu.

    Merci à tous pour votre aide.

    Cordialement,
    PKO
    Quand c'est trop, c'est pas bon !

  8. #8
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 774
    Points : 969
    Points
    969
    Par défaut
    Salut,

    Alors pour la fenetre de séléction de fichier, y'a ça(QFileDialog::getOpenFileName(...).
    Ensuite, si tu veux lancer un éditeur externe, genre Word, y'a ça(FAQ QProcess) ou ça(FAQ QDesktopServices).

    Sinon, si tu veux faire toi même un petit éditeur rapide, alors regarde (QFile) pour ouvrir et lire ton fichier, et (QTextEdit) pour l'afficher et permettre l'édition.

    G.
    Un problème avec Qt ? Vous trouverez votre réponse ici : http://doc.trolltech.com/4.6/overviews.html
    En français (traduction réalisée par l'équipe Qt de DVP) : http://qt.developpez.com/doc/4.6/vues-d-ensemble/

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

Discussions similaires

  1. lire et afficher fichier texte
    Par majdi9782 dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 11/05/2007, 09h42
  2. Réponses: 2
    Dernier message: 19/10/2006, 09h43
  3. afficher un fichier texte
    Par transistor49 dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 06/01/2006, 14h24
  4. Imprimer un fichier texte sans l'afficher
    Par sheira dans le forum ASP
    Réponses: 7
    Dernier message: 13/12/2005, 12h10
  5. Réponses: 1
    Dernier message: 12/02/2003, 09h36

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