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 :

probleme de barre de progression


Sujet :

GTK+ avec C & C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 72
    Par défaut probleme de barre de progression
    salut,

    j'essaie de faire une barre de progression (comme exercice):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    double count1=0;
    double count2=0;
    double count3=0;
     
    GtkWidget * ScWindow;
    GtkWidget *barre1;
    GtkWidget *ScTable;
     
    //création de la fenêtre
    ScWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title(GTK_WINDOW(ScWindow), "fenetre gtk+");
    gtk_window_set_default_size(GTK_WINDOW(ScWindow), 150, 25);
     
    //création de la table
    ScTable=gtk_table_new (1, 1, FALSE);
    gtk_container_add (GTK_CONTAINER (ScWindow), ScTable);
     
    //création de la barre
    barre1=gtk_progress_bar_new ();
    gtk_table_attach(GTK_TABLE(ScTable), GTK_WIDGET(barre1), 0, 1, 0, 1, GTK_FILL | GTK_EXPAND, GTK_FILL, 5, 5);
     
    //boucle
    while(count1<=100000){
    gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(barre1), count1/100000);
                                  count1++;
                                  count2++;
                                  count3++;
                                  gtk_widget_show_all(ScWindow);
                                  }
    gtk_widget_show_all(ScWindow);
    le problème, c'est qu'il n'affiche que la fenêtre (sans la barre donc), puis quand le 'calcul' est fini, il affiche enfin la barre, mais à 100% (puisque le calcul est fini).
    comment faire pour "actualiser" à chaque fois?
    j'ai été voir dans le doc et dans 3 tutoriels, rien trouvé

    merci d'avance!

  2. #2
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Normal, tu remplis ta barre de progression avant même l'affichage des widgets:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gtk_widget_show_all(ScWindow);
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  3. #3
    Membre confirmé

    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 72
    Par défaut
    donc, je devrais mettre cette ligne, et ensuite ma boucle while (avec gtk_widget_show_all(ScWindow); dedans?)

    ??

    car ça ne marche pas...

  4. #4
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Nan sans:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gtk_widget_show_all(ScWindow);
    Ceci te permet d'afficher la fenêtre ainsi que tous ses widgets donc tu penses bien qu'il est inutile de l'appeler à chaque tour de boucle. Donc d'abord tu affiches ta fenêtre puis ensuite tu peux éventuellement remplir la barre de progression.

    En passant, la boucle qui remplie ta barre de progression passe tellement vite que tu n'as pas le temps de voir le remplissage, en générale on utilise au moins un timer pour voir le remplissage de la barre s'effectuer sinon comment tu veux voir en même pas une seconde ?
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  5. #5
    Membre confirmé

    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 72
    Par défaut
    je vais essayer comme ça...


    la boucle a besoin de 4-5s pour s'effectuer...

    edit:
    je fais comme ça donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    double count1=0;
    double count2=0;
    double count3=0;
     
    GtkWidget * ScWindow;
    GtkWidget *barre1;
    GtkWidget *ScTable;
     
    //création de la fenêtre
    ScWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title(GTK_WINDOW(ScWindow), "fenetre gtk+");
    gtk_window_set_default_size(GTK_WINDOW(ScWindow), 150, 25);
     
    //création de la table
    ScTable=gtk_table_new (1, 1, FALSE);
    gtk_container_add (GTK_CONTAINER (ScWindow), ScTable);
     
    //création de la barre
    barre1=gtk_progress_bar_new ();
    gtk_table_attach(GTK_TABLE(ScTable), GTK_WIDGET(barre1), 0, 1, 0, 1, GTK_FILL | GTK_EXPAND, GTK_FILL, 5, 5);
     
    gtk_widget_show_all(ScWindow);
     
    //boucle
    while(count1<=100000){
    gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(barre1), count1/100000);
                                  count1++;
                                  count2++;
                                  count3++;
                                  }
    mais ça ne marche pas...

    p-s: je précise que je débute au cas ou tu ne l'aurais pas remarqué

  6. #6
    Membre confirmé

    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 72
    Par défaut
    résolu, il fallait ajouter:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gtk_widget_draw(GTK_WIDGET(barre1), NULL);
    à la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gtk_widget_show(barre1);

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP-JS] Probleme avec ma barre de progression sous IE
    Par gannher dans le forum Langage
    Réponses: 1
    Dernier message: 08/10/2007, 10h32
  2. [VB.NET] Pb avec le bouton Annuler d'1 barre de progression
    Par dada1982 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 30/06/2004, 09h56
  3. Réponses: 12
    Dernier message: 27/05/2004, 00h13
  4. [DEBUTANT] Barre de progression
    Par pupupu dans le forum MFC
    Réponses: 4
    Dernier message: 18/01/2004, 16h47
  5. [web] Barre de Progression ASCII
    Par Red Bull dans le forum Web
    Réponses: 13
    Dernier message: 05/06/2003, 12h56

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