1. #1
    Futur Membre du Club
    Homme Profil pro
    Responsable de trafic
    Inscrit en
    août 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Djibouti

    Informations professionnelles :
    Activité : Responsable de trafic
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : août 2015
    Messages : 9
    Points : 9
    Points
    9

    Par défaut étapes des traitements dans 1 fonction

    Bonjour,

    voila, j'ai 3 fonctions qui font differents traitements. j'en prends par exemple une qui fait les choses suivantes:

    1/ elle affiche un label,
    2/ pendant toute la duree de ce processus, le label reste affiché,
    3/ elle change l'affichage du label et se termine.

    mais comme l'étape 2 est une boucle for ou while, l'étape 1 et 3 s'affichent après l'étape 2 ???
    comment faut-il faire pour que les étapes se suivent?

    voici le code:

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
    #include <stdlib.h>
    #include <gtk/gtk.h>
     
    const gchar *str0="debut_fonc",*str1="fin_fonc";
    GtkWidget *plabel0;
     
     
    void fonc()
    {
     gint j; 
     
     //c'est l'étape 1
     gtk_label_set_label((GtkLabel *)plabel0,str0);
     
     //c'est l'étape 2
     for(j=0;j<300000000;j++)
      {               
      } 
     //c'est l'étape 3
     //gtk_label_get_label((GtkLabel *)plabel0);          
     //gtk_label_set_label((GtkLabel *)plabel0,str1);  
     
    }     
     
     
    int main(int argc, char** argv)
    {
      GtkWidget *window = NULL;
      GtkWidget *ptable;    
      GtkWidget *button=NULL;
     
      // Initialisation gtk
      gtk_init(&argc, &argv);
     
      // Création fenetre
      window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
      gtk_window_set_title(GTK_WINDOW(window), "chargement_label");
      gtk_window_set_default_size(GTK_WINDOW(window), 400, 300);
      gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER_ALWAYS);
     
      // Insertion de ptable dans la fenêtre principale
      ptable=gtk_table_new(2,2,TRUE);
      gtk_container_add(GTK_CONTAINER(window),ptable); 
     
     
      // Connexion du signal "delete-event" pour fermer l'application
      g_signal_connect(G_OBJECT(window), "delete-event", G_CALLBACK(gtk_main_quit), NULL);
     
      // Insertion d'un label
      plabel0 = gtk_label_new("");  
      gtk_table_attach_defaults(GTK_TABLE(ptable), plabel0,1,2,0,1);
     
      // Insertion d'un bouton pour basculer d'un label à l'autre
      button = gtk_button_new_with_label ("changer_label");
      gtk_table_attach_defaults(GTK_TABLE(ptable), button,0,1,1,2);  
      g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(fonc), plabel0); 
     
      // Affichage du tout
      gtk_widget_show_all(window);
     
      gtk_main();
     
      return EXIT_SUCCESS;
    }
    merci d'avance.

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Responsable de trafic
    Inscrit en
    août 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Djibouti

    Informations professionnelles :
    Activité : Responsable de trafic
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : août 2015
    Messages : 9
    Points : 9
    Points
    9

    Par défaut étapes des traitements dans 1 fonction

    Je pense avoir eu ma propre réponse. ce qui est d'ailleurs simple, mais il fallait y penser. j'ajoute au code dans la fonction fonc():
    voir code:

    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
    void fonc()
    {
     gint j; 
     
     //c'est l'étape 1
     gtk_label_set_label((GtkLabel *)plabel0,str0);
      while (gtk_events_pending())
     {
      gtk_main_iteration();
     }
    
     //c'est l'étape 2
     for(j=0;j<300000000;j++)
      {               
      } 
     //c'est l'étape 3
     //gtk_label_get_label((GtkLabel *)plabel0);          
     //gtk_label_set_label((GtkLabel *)plabel0,str1);  
      
    }
    et le tour est joué.
    c'est bon pour qui veut s'en inspirez.

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 27/07/2010, 19h04
  2. Réponses: 3
    Dernier message: 27/05/2008, 11h34
  3. Gestion des buffers dans une fonction
    Par JiJiJaco dans le forum Fonctions
    Réponses: 2
    Dernier message: 06/01/2006, 11h20
  4. [AS2] déclarer des variables dans une fonction
    Par ooyeah dans le forum ActionScript 1 & ActionScript 2
    Réponses: 12
    Dernier message: 02/08/2005, 12h50
  5. fonction récupérant des valeurs dans une fonction popup...
    Par petitsims dans le forum JavaScript
    Réponses: 2
    Dernier message: 20/01/2005, 14h51

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