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

GTK+ Discussion :

Les Thread avec GTK+


Sujet :

GTK+

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif
    Inscrit en
    Juin 2008
    Messages
    304
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 304
    Par défaut Les Thread avec GTK+
    Bonjour,

    Voila j’ai besoin de faire un équivalant à des Thread
    Si c’est possible de me dire si sa existe en GTK+

    Si oui, si c’est possible de me donnés un exemple de code avec des Thread en GTK+

    Merci d’avance.

  2. #2
    Inactif
    Inscrit en
    Juin 2008
    Messages
    304
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 304
    Par défaut
    En faite voila :

    Se que je veux réaliser c’est un mini éditeur de mon mini compilateur (Réaliser avec Flex et Bison)

    Mais bon j’ai fait une l’interface avec un bouton Compiler (qui fait appelle à un programme extérieur)

    mais lorsque je click sur le bouton, l’interface bloc totalement (le temps de la compilation même chausse pour le bouton Run) c’est pour sa que je vaux séparés les deux processus.

  3. #3
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 308
    Billets dans le blog
    5
    Par défaut
    je suppose que tu lances ton application avec la fonction system();. La Glib met à ta disposition des fonctions qui te permettent de garder la main de ton application GTK+ tout en éxécutant une application externe. Toutes les fonctions associées se trouvent ici.

    Bonne lecture.

  4. #4
    Inactif
    Inscrit en
    Juin 2008
    Messages
    304
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 304
    Par défaut
    Merci pour ta répance


    Bonsoir,

    si c'est passible de donnée un lien ou un mini code pour
    intégré la console dans une fenêtre GTK.

    Merci d'avance

  5. #5
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 308
    Billets dans le blog
    5
    Par défaut
    Quel est le but de ton application au juste?

  6. #6
    Inactif
    Inscrit en
    Juin 2008
    Messages
    304
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 304
    Par défaut
    Bonjour,

    Je voudrai réaliser un éditeur de Code Source Simple avec un bouton Compiler et Exécuter.

    Bon pour le Compilateur il est déjà intégré à l’éditeur et il me manque juste pour voire le Résulta de la compilation et de l’exécution dans le Terminale (Console) Sa marche déjà mais

    Pour faire vrais il faut que je l’intègre dans la fenêtre GTK+.

    Merci pour tout les répance d’avance.

  7. #7
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 308
    Billets dans le blog
    5
    Par défaut
    Ok. Ce qu'il te faut c'est fabriquer ta console.

    Par exemple pour lancer ton compilateur tu peux utiliser gboolean g_spawn_command_line_sync(const gchar *command_line, gchar **standard_output, gchar **standard_error, gint *exit_status, GError **error);.
    Elle est synchrone. Ce qui va provoquer un gel de l'interface Gtk+ mais ce n'est pas grave en soit pour commencer. Tu pourras par la suite d'aventurer plus avant avec la fonction g_spawn_async_with_pipes(); qui elle est asynchrone.

    Phase 1:
    Revenons donc à notre première fonction. Comme tu peux le voir tu peux transmettre deux pointeurs sur des pointeurs char. Ils vont te permettre de communiquer à l'application lancée, ici ton compilateur.
    La variable gchar **standard_output va te permettre de récupérer toutes les sorties console de ton compilateur.

    Phase 2:
    Insère dans ton application un GtkTextView. Une fois fait, il ne te reste plus qu'à "écrire" tout ce qui arrive sur gchar **standard_output dans ton GtkTextView.

  8. #8
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Citation Envoyé par gerald3d Voir le message
    Par exemple pour lancer ton compilateur tu peux utiliser gboolean g_spawn_command_line_sync(const gchar *command_line, gchar **standard_output, gchar **standard_error, gint *exit_status, GError **error);.
    Elle est synchrone. Ce qui va provoquer un gel de l'interface Gtk+ mais ce n'est pas grave en soit pour commencer. Tu pourras par la suite d'aventurer plus avant avec la fonction g_spawn_async_with_pipes(); qui elle est asynchrone.
    Je rajouterai utiliser GIOChannel pour la capture des messages puisqu'il est possible d'utiliser la fonction g_io_add_watch pour appeler une fonction lorsque des données sont reçues. Ça peut semblais être superflue mais ça résout pas mal de problème d'affichage


    Citation Envoyé par gerald3d Voir le message
    Phase 2:
    Insère dans ton application un GtkTextView. Une fois fait, il ne te reste plus qu'à "écrire" tout ce qui arrive sur gchar **standard_output dans ton GtkTextView.
    Par expérience, je conseillerai plutôt un GtkTreeView, ça demande quelques lignes de plus pour la mise en place, mais ensuite les fonctionnalités sont plus simple à mettre en place.

Discussions similaires

  1. comment on utilise les thread avec pygtk ?
    Par dkmatt dans le forum GTK+ avec Python
    Réponses: 8
    Dernier message: 03/11/2009, 15h42
  2. Comment afficher des images les unes devant les autres avec GTK+ ?
    Par getgetxx dans le forum GTK+ avec C & C++
    Réponses: 19
    Dernier message: 30/04/2009, 20h58
  3. Les Thread avec GTK+
    Par bilred dans le forum Linux
    Réponses: 3
    Dernier message: 13/04/2009, 14h19
  4. Les threads avec Runnable.
    Par specsy dans le forum Débuter avec Java
    Réponses: 12
    Dernier message: 26/04/2008, 23h30
  5. les widgets avec gtk+
    Par opensource dans le forum GTK+ avec C & C++
    Réponses: 1
    Dernier message: 05/09/2007, 14h49

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