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

wxWidgets Discussion :

Création d'une IHM en tant que surcouche d'une application console


Sujet :

wxWidgets

  1. #1
    Membre actif
    Avatar de TheDrev
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 310
    Points : 263
    Points
    263
    Par défaut Création d'une IHM en tant que surcouche d'une application console
    Bonjour !!

    J'ai vu quelques logiciels en mode console posséderez des font-end (par exemple CDRTFE pour cdrtool, ou kpdfgui pour kpdf).

    Comment cela se traduit il en programmation, les évènements du gui doivent elles être traité en fonction du message envoyé vers la sortie standard (texte brute ?) ou par un autre procédé ?

    J'aimerai faire la même chose avec wx pour mes projets perso ou (pourquoi pas) des applications console déjà existante.

  2. #2
    En attente de confirmation mail
    Inscrit en
    Octobre 2007
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Octobre 2007
    Messages : 285
    Points : 348
    Points
    348
    Par défaut Création d'une IHM en tant que surcouche d'une application console
    Les possibilités sont nombreuses et dépendent des applications consoles.

    J'utilise ce procédé pour nos applications afin de détacher la partie IHM de la partie traitements sur nos modules qui peuvent être exécuté sur des systèmes sans IHM.

    Après tout dépend des applis consoles.
    le cas qui doit correspondre au post : pas de codes sources ou pas envie de toucher aux programmes.
    1er cas : le soft s'éxécute avec paramètres en ligne de commande:
    - créer une IHM pour remplir les paramètres puis par exemple à l'aide d'un contrôle "Launch" faire appel à l'appli console avec les params qui vont bien du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    	wxArrayString output;
    	wxArrayString errors;
     
    	wxDateTime StartModule = wxDateTime::UNow();
    	long returntest = wxExecute(command,output,errors,wxEXEC_SYNC);
    	wxDateTime EndModule = wxDateTime::UNow();
    avec "command" un wxString reconstruit avec le nom de l'appli console et les params récupéré via l'IHM

    2eme cas : le soft s'éxécute via des fichiers de paramètres:
    - créer une IHM pour remplir les paramètres puis par exemple à l'aide d'un contrôle "Launch" pour créer les fichiers au bon endroit et faire appel à l'appli console


    Les deux cas peuvent être combinés

    C'est une solution simple, rapide à mettre en oeuvre. Il est possible de faire des choses plus complexes, passer par des bases de données, exécuter l'appli console sur une autre machine, ...

    En espérant avoir donné un début de réponse,

    Cdt

  3. #3
    Membre actif
    Avatar de TheDrev
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 310
    Points : 263
    Points
    263
    Par défaut
    Merci ! C'est bien la fonction que je cherchais.
    Savez vous s'il est possible de faire la même chose en C ou C++ "de base" avec la fonction system(), sachant qu'il renvoie le code d'erreur ou 0 ?
    En d'autre terme, il faudrait pouvoir ecouter sur la sortie standard...

    En tout les cas j'ai deja de quoi travailler avec wx !

    Edit :
    Mes pistes sont pour le moment la fonction popen(), ou un streambuffer http://cpp.developpez.com/faq/cpp/?p...SL_redirection je vais tester toutes solutions

  4. #4
    En attente de confirmation mail
    Inscrit en
    Octobre 2007
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Octobre 2007
    Messages : 285
    Points : 348
    Points
    348
    Par défaut Création d'une IHM en tant que surcouche d'une application console
    Bonjour,

    Effectivement, la function system() de cstdlib peut réaliser cette opération. Elle renvoie la valeur de retour du programme.
    info sur la fonction : http://www.cplusplus.com/reference/c...ib/system.html

    Par contre on n'obtient pas les sorties standards...
    Pour récupérer la sortie dans ce contexte, je sèche !!

    Pour info, chacun de nos modules génèrent un fichier log que nous relisons dans l'appli IHM afin de connaître exactement ce qui s'est passé. Du coup, nos applications sont muettes (pas d'affichage de la console) et deviennent donc transparentes pour l'utilisateur.

    Le système de log de wxwidgets est bien pensé et permet de créer un log évolué.

    Cdt,

    Jérôme

Discussions similaires

  1. passer une variable en tant que text dans une fonction
    Par Barokar dans le forum Langage
    Réponses: 6
    Dernier message: 18/06/2014, 15h23
  2. Réponses: 6
    Dernier message: 28/05/2014, 14h16
  3. [AC-2000] Déclarer une procédure en tant que variable dans une procédure globale
    Par kir4000 dans le forum VBA Access
    Réponses: 1
    Dernier message: 04/08/2009, 16h52
  4. Réponses: 1
    Dernier message: 23/07/2009, 21h14
  5. Réponses: 10
    Dernier message: 26/07/2007, 14h16

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