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 :

Lire la sortie standard (stdout) avec Qt


Sujet :

Qt

  1. #1
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 858
    Points : 218 575
    Points
    218 575
    Billets dans le blog
    120
    Par défaut Lire la sortie standard (stdout) avec Qt
    Bonjour à tous,

    Je programme un peu pour le défi Qt ( je vous invite à participer ). -> http://www.developpez.net/forums/f13...s/qt/defis-qt/

    Bref, je poste quand même dans la section principale du forum, car ça peut interesser tout le monde ( n'est ce pas ).
    Pour le défi, Yan nous donne un super programme de fractale. Celui ci, pendant la génération des fractales va afficher le pourcentage sur la sortie standard (stdout). Moi, ce que je cherche à faire, au maximum, c'est de ne pas toucher au programme de Yan. Et au grand maximum, de ne jamais mettre du Qt là dedans.
    Donc ma question ( je sais le faire avec des pipes sous linux ) c'est comment lire avec Qt la sortie standard ( si possible, sans l'afficher sur la console ).
    Pourquoi je pose ma question, simplement, car je veux le faire avec Qt pour le faire de façon multi plateforme.

    ( Sinon, dans le cas qu'il y a aucun moyen de le faire, quelqu'un c'est envoyé un signal, lorsque une valeur est modifié ( à l'instar des QSpinBox ), mais pour n'importe qu'elle variable )

    Merci pour votre aide
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  2. #2
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    D'abord la sortie standard en C++ n'est pas stdout mais std::cout. stdout n'est même pas défini en C++. Ensuite je n'ai pas trop compris la question. Ce que tu veux faire, c'est exécuter un programme et rediriger sa sortie standard vers quelque chose que tu peux lire, c'est ça ? Avec ou sans Qt ?

  3. #3
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 858
    Points : 218 575
    Points
    218 575
    Billets dans le blog
    120
    Par défaut
    Grand pardon, pour le manque de clarté.

    Donc, je parle bien de std::cout.

    Après, je veux un moyen, dans mon programme, pour intercepter ceux qui est envoyé sur std::cout pour pouvoir le lire. Tout ça à l'aide de Qt.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  4. #4
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Mais ce que je ne comprends pas c'est que std::cout c'est un flux de sortie ! Tu es censé l'écrire, pas le lire. Ce qui est possible c'est d'attacher la sortie standard d'un autre programme à ton entrée standard. Désolé si je ne comprends rien.

  5. #5
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 858
    Points : 218 575
    Points
    218 575
    Billets dans le blog
    120
    Par défaut
    Je suis le premier désolé, de ne pas pouvoir m'exprimer normalement.

    Je vais expliquer rapidement avec les pipes. En fait, stdin / stdout / stderr ne sont juste que trois flux, ouvert dès que le programme est lancé. Avec les bonnes commandes ( relatives aux pipes ) on peut se permettre de faire des redirections de ces pipes ( et même d'en crée d'autres ). Cela peut permettre la communication entre programme par exemple.

    Donc, pour résumé ma question, moi je veux intercepté / récupéré, ce qui arrive sur std::cout. Car, par exemple, on affiche sur std::cout une information que j'ai besoin.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  6. #6
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Normalement tu peut faire une redirection de std::cout vers un flux que tu peut lire.
    http://www.velocityreviews.com/forum...30&postcount=3

    Sinon, en modifiant très peu le code, je te conseil plutôt de faire une callback que sera appelé avec le pourcentage.

  7. #7
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 858
    Points : 218 575
    Points
    218 575
    Billets dans le blog
    120
    Par défaut
    Le callback, si je comprends bien, viendra à:

    - d'une part, changer votre code.
    - d'autre part, mettre des touche de Qt dans votre framework.

    Je m'étais fixé comme objectif de ne pas changer votre framework. Et surtout, de ne rien voir de Qt dedans.
    Sinon, en parlant de callback, j'ai une idée ( je pense la même que vous, finalement ), qui permettrai de mettre du code Qt, dans le callback, mais du coté de Qt.

    *Retourne en courant sur son projet*
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  8. #8
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    diantre, ça donne un coup de vieux de se faire vouvoyer

    Citation Envoyé par LittleWhite Voir le message
    Sinon, en parlant de callback, j'ai une idée ( je pense la même que vous, finalement ), qui permettrai de mettre du code Qt, dans le callback, mais du coté de Qt.
    c'est plutôt dans ce sens oui.
    Sinon, y as des choses qui vaut le coup d'être modifié dans le code, y as des parties qui sont mal conçu, des fonctionnalités aux mauvais endroit et quelques petite chose à revoir .

  9. #9
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 858
    Points : 218 575
    Points
    218 575
    Billets dans le blog
    120
    Par défaut
    Citation Envoyé par yan Voir le message
    diantre, ça donne un coup de vieux de se faire vouvoyer
    Mais non, je vouvoie tout le monde. Donc faut pas se sentir vieux.

    Citation Envoyé par yan Voir le message
    c'est plutôt dans ce sens oui.
    Sinon, y as des choses qui vaut le coup d'être modifié dans le code, y as des parties qui sont mal conçu, des fonctionnalités aux mauvais endroit et quelques petite chose à revoir .
    Hum, je vais déjà m'occuper de mon code, avant même de toucher au votre ( surtout qu'il a une grande différence de niveau entre moi et votre code ( design pattern, foncteurs ... )
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

Discussions similaires

  1. [Lazarus] Ecrire sur la sortie standard stdout
    Par SergioMaster dans le forum Lazarus
    Réponses: 4
    Dernier message: 27/09/2009, 14h00
  2. Ecrire sur la sortie standard avec write
    Par overlolo dans le forum Débuter
    Réponses: 8
    Dernier message: 13/04/2009, 00h07
  3. Réponses: 2
    Dernier message: 10/02/2007, 12h07
  4. PB sortie standard avec les PTHREAD !!!
    Par djspit dans le forum C++
    Réponses: 15
    Dernier message: 19/11/2004, 01h17
  5. Réponses: 16
    Dernier message: 18/07/2003, 17h16

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