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+ avec C & C++ Discussion :

Problème thread + gtk_text_view_new


Sujet :

GTK+ avec C & C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 7
    Par défaut Problème thread + gtk_text_view_new
    Bonjour,

    Je suis en train de dévellopper une interface sous Windows connectée à un autocom afin de remonter sur le logiciel les appels téléphoniques et opérer sur ceux-ci.
    Il y a plusieurs thread qui tourne en même temps :
    1 en écoute de packet TCP venant de l'autocom
    1 qui met à jour des compteurs de temps quand il y a besoin
    1 qui vérifie la connection TCP et alerte en cas de problème.

    Jusqu'a maintenant tout allait bien, sauf au moment où j'ai voulu qu'un thread rajoute une page à un Notebook et dans cette page, un gtk_text_view.
    En fait, dès que je rajoute dans la page des container style Frame, des V/Hbox ou les Label, tout va bien, mais si je veux rajouter autre choses genre text_view ou image, le programme se bloque ainsi que tous les autre threads.

    J'ai essayer d'utiliser les pthread et les g_thread, ca ne change rien.
    J'ai essayer de réduire ma fonction d'affichage d'un nouvel onglet dans le notebook au minimum, c'est à dire un onglet avec directement mon text_view, ca bloque toujours.

    Et plus précisément, ca bloque à l'appel du gtk_pack_start ou gtk_container_add, j'ai essayer plusieurs containers.

    Donc voilà, je ne comprends pas pourquoi dès qu'il s'agit de mettre autre choses qu'un label ou des container dans mon notebook, tout les threads sont figés.

    Et dernier test que j'ai effectué : de complier sous Linux, et là, ca marche très bien.
    Donc je me suis dis, peut-être un problème de compilateur, j'utilisait Visualc++, j'ai essayer mingw avec codeblocks, toujours le même problème
    J'ai aussi essayer avec la dernière version de gtk (2.14.5) ca bug toujours, et toujours uniquement sous Windows.
    Vous me direz, y'a qu'a faire sous Linux, mais je ne peux pas ! il faut que ca marche sous Windows.

    Pour ce qui est du code complet, il ne passe pas en pièce jointe, donc si quelqu'un peut m'aider, hésitez pas à me demande le code que je vous enverrais pas mail.

    Merci d'avance

    Voici le code complet :

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 7
    Par défaut A demi résolu ...
    Suite des évènements :

    J'ai trouvé un moyen que ca plante plus avec aucun widget :
    Je fait le gtk_notebook_append_page() à tout à la fin , après création de tout ce que va contenir le child.

    MAIS : le problème maintenant, c'est que la fonction gtk_notebook_set_current_page fige l'affichage du notebook.
    mais les thread continuent de fonctionner et continuer d'interagir avec la fenêtre, par contre je n'ai plus la main sur le fenêtre du tout.
    J'ai essayer un gtk_main_iteration() voir si ca pouvais changer quelquechose ... rien.

    Et comme d'habitude, ca fonctionne très bien sous Linux.

  3. #3
    Membre Expert
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Par défaut
    Cf http://www.developpez.net/forums/d65...k/#post3870431 qui est juste au dessus/au dessous de ton post

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 7
    Par défaut C'est différent
    Salut,

    Mais mon problème est que je ne peux pas rassembler tout les appels à gtk dans le gtk_main, vu que ce sont des actions interactives.
    Deplus j'ai essayer toutes les possibilités que j'ai trouvé ... !
    Mais comment expliquerais-tu que tout fonctionne sous Linux et pas sous Windows ?

    a+

  5. #5
    Membre Expert
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Par défaut
    Je vois pas en quoi le fait que ce que tu souhaites faire soit interactif pose un pb pour utiliser g_idle_add. Et sinon, lis le lien que j'ai filé qui propose d'autres moyens de gérer le pb...

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 7
    Par défaut g_iddle
    Je viens de comprendre ...
    C'est bon ca marche
    j'ai créer une fonction dans laquel j'ai mis mon "notebook_set_current_page" et je l'appel en idle via g_idle_add ..

    humhum

    bien bien,

    Le seul truc qui me chagrine, c'est de ne pas comprendre le pourquoi du comment ...


    merci a+

Discussions similaires

  1. [Problème] Threads et JProgressBar
    Par Bloodscalp dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 10/10/2006, 15h19
  2. Problème thread et fonction récursive
    Par cryptorchild dans le forum Langage
    Réponses: 3
    Dernier message: 27/09/2006, 12h19
  3. Problème thread Boost
    Par TuRn3r dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 01/06/2006, 18h34
  4. Problème Thread et Scan de dossiers en C
    Par tptiben dans le forum Windows
    Réponses: 8
    Dernier message: 15/05/2006, 18h25
  5. Problème Thread
    Par Royd938 dans le forum Général Dotnet
    Réponses: 5
    Dernier message: 07/04/2006, 09h10

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