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 :

Progression invisible de la progress_bar


Sujet :

GTK+

  1. #1
    Invité
    Invité(e)
    Par défaut Progression invisible de la progress_bar
    Bonjour,
    J'utilise une barre de progression, que je fais progresser mais la progression n'est pas visible.
    La fenêtre est comme planté durant la progression.
    Durant la progression, j'ajoute des item à un canevas selon l'exemple de gtkada, testgtk.
    Je cherche ce qui cloche.

    Mon code principale contient ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Initialize_Item (Item, Canvas);
    Put (Canvas, Item, X, Y);
    Refresh_Canvas(Canvas);                                                         
    Show_Item (Canvas, Item);
    J'appelle ce code à chaque fois que je fait progresser la barre.

    D'un autre côté, je suis pas sur de ma fonction qui retourne la valeur à donner à set_fraction.

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

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

    Informations forums :
    Inscription : Février 2008
    Messages : 2 291
    Points : 4 941
    Points
    4 941
    Billets dans le blog
    5
    Par défaut
    En règle générale on ajoute à la boucle principale Gtk une fonction callback qui va s'occuper de mettre à jour la barre de progression. Ce qui évite le blocage de la fenêtre.

    En C la fonction utilisée est g_timeout_add();.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Re- bonjour,

    Alors je viens de lire le tuto, il manquait l'appel à main_iteration, mais du coup ça met 20 seconde de trop à présent.

    Mo problème est résolu mais ai-je des chances de faire progresser ma barre plus vite ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Merci pour ta réponse gerald3d, mais deux choses.
    Je ne pige pas bien l'anglais.
    Mais doonc je viens de voir une solution avec Main_Iteration, mais je vois pas ce qu'un timeout viens faire dans mon histoire de progress bar.
    Si tu pouvais m'éclairer un poil de plus, merci.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Entre 2 seconde sans la barre de progression pour le chargement total et 40 seconde avec la barre de progression, même avec add/remove grab qui n'a aucun effet, il doit bien y avoir un compromis.

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

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

    Informations forums :
    Inscription : Février 2008
    Messages : 2 291
    Points : 4 941
    Points
    4 941
    Billets dans le blog
    5
    Par défaut
    Lorsque tu fais un main_iteration tu demandes que les évènements en attente d'actualisation soient mis à jour. Selon la position de ta progressbar dans la liste le temps de réponse peut être plus ou moins long. Maintenant avoir des délais aussi longs le problème ne vient certainement pas de là.

    Ce qui m'a fait parler du g_timeout_add(); est justement les temps dont tu parles. La fonction se retrouve activée indépendamment des opérations que tu peux entreprendre. En réalité on utilise cette technique lorsqu'on veut juste une barre de progression qui oscille de gauche à droite sans arrêt sans indiquer le % d'avancement.

    Quelle type d'opération fais-tu exactement et que tu veux contrôler par un GtkProgressBar ?

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour, je comprends pas la question.

    Je fais avancer ma barre pour l'affichage d'items dans un canevas.
    Pour toute itération j'ajoute un item dans un canevas donc.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Mais ça viens pas de l'affichage des item, car en enlevant cette action, le résultat est identique, environs 40 secondes pour faire 1000 itérations.

Discussions similaires

  1. [Progress] Odbc
    Par NewB dans le forum Autres SGBD
    Réponses: 8
    Dernier message: 26/03/2003, 09h19
  2. Mettre un popup menu invisible ??
    Par Alberto dans le forum Composants VCL
    Réponses: 2
    Dernier message: 20/12/2002, 09h02
  3. Rendre le curseur invisible sur une fenêtre donnée
    Par Meuhmeuh dans le forum C++Builder
    Réponses: 3
    Dernier message: 22/11/2002, 12h25
  4. Réponses: 8
    Dernier message: 05/06/2002, 11h55

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