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 :

Redirection de printf dans une QTextEdit

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1


    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 3
    Par défaut Redirection de printf dans une QTextEdit
    Bonjour,
    je débute avec QT.
    Je souhaite afficher une fenêtre de logs (QTextEdit en mode non éditable) dans mon application pour récupérer tous les messages d'information/Debug/Erreur.
    Il n'y a aucun pb pour les messages utilisant qDebug, mais mon application utilise un bibliothèque écrite en C (link static) qui utilise intensivement printf, et je n'ai pas trouvé comment rediriger stdout et stderr vers ma QTextEdit.

    Donc ma question est : Comment récupérer les sorties sur stdout et stderr pour les afficher sous Qt?

    J'utilise QT4.7.1 sous Windows et j'utilise VS2008 avec les plugin QT.

    Cordialement,

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Bien que je ne maîtrise pas cette class , je pense que la class QProcess
    pourra t'être utile pour rediriger tes sorties textes vers un fichier texte ou(/puis) vers un objet déclarer en QTextEdit .

    Voici quelques liens :

    Tutoriel c++,introduction en qt

    QProcess,QTextstream

    faq en c++,faq en qt

    et un lien vers des exercices que j'ai rédigé moi-même :

    http://www.developpez.net/forums/d98...ces-debutants/
    Dernière modification par Invité ; 18/12/2010 à 21h29. Motif: pour un petit oubli

  3. #3


    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 3
    Par défaut
    Bonjour,
    merci pour tes liens.
    D'après ce que je comprends de QProcess, on peut récupérer les entrées/sorties standards d'un process fils, or dans mon cas, c'est le même process.
    J'ai finalement réussi à trouver une solution à base de QThread:
    - je redirige stdout/stderr vers un pipe anonyme
    - je scrute le pipe dans un thread
    -dès que quelque chose est écrit, je fais un append dans ma QTextEdit.

    Le problème de cette solution c'est que je n'ai pas encore vérifié sa portabilité, notamment au niveau des redirections stdout->pipe.
    J'ai utilisé le code donné sur ce forum : http://www.qtcentre.org/archive/index.php/t-3901.html
    Par contre, sous windows, il faut absolument linker l'appli en mode console pour que stout et stderr soient redirigeable (propriété du projet ->Linker->System->subsystem /SUBSYSTEM:CONSOLE).
    Sans cette option, impossible de les rediriger.

    Cordialement

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

Discussions similaires

  1. Redirection vers index dans une page frameset
    Par tonix dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 07/03/2007, 14h15
  2. [ Struts ] redirection dans une action
    Par jakouz dans le forum Struts 1
    Réponses: 5
    Dernier message: 28/04/2006, 15h54
  3. Redirection d'un site vers une adresse dans UNE NEW FENETRE
    Par Mout85 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 20/06/2005, 09h40
  4. Redirection automatique lors d'une sélection dans un Select
    Par MiJack dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 21/12/2004, 18h09

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