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 :

Couleur des combo-box


Sujet :

GTK+ avec C & C++

  1. #21
    Modérateur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    1 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 395
    Par défaut
    Zut, j'avais écrit un gros message qui a été perdu on dirait
    Je le redis, utilise G_N_ELEMENTS. Il y a des problèmes dans ta déclaration de macro.

  2. #22
    Modérateur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    1 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 395
    Par défaut
    Pour la virgule après la dernière valeur du tableau, c'est intentionnel. Cela évite d'avoir à modifier l'avant dernière ligne pour rajouter une virgule quand on rajoute un nouvel élément. Cela diminue les différences entre 2 versions de fichiers, ce qui est très utile quand tu dois comparer différentes versions du même fichier. C'est aussi pour cette raison que toutes les valeurs sont chacunes sur une ligne.

  3. #23
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 605
    Par défaut
    Citation Envoyé par liberforce Voir le message
    Je le redis, utilise G_N_ELEMENTS. Il y a des problèmes dans ta déclaration de macro.
    Je l'ai utiisée => elle marche, mais pas toujours !
    Avec un , ça ne marchait pas
    Avec un tableau de long généré avec un malloc, j'avais toujours 1
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

  4. #24
    Modérateur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    1 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 395
    Par défaut
    Cela fonctionne pour les tableaux alloués statiquement en C. Pas pour de l'allocation dynamique avec new ou malloc. Un tableau et un buffer alloué par malloc se manipulent de la même manière en C, mais ce n'est pas du tout la même chose. Tu ne peux pas faire un sizeof d'un tableau alloué via malloc en espérant avoir la taille du tableau, tu n'auras que la taille du pointeur qui pointe vers le buffer. Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    char chaine = "toto";
    printf ("%d", sizeof(chaine1));
    T'affichera (on compte le caractère nul final):
    En revanche,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    char *chaine = "toto";
    printf ("%d", sizeof(chaine1));
    T'affichera la taille du pointeur (4 octets en 32 bits, 8 en 64 bits):

    Mais si tu dois faire de l'allocation dynamique, alors ne t'embête pas à gérer tout cela manuellement, utiliser les tableaux dynamiques de la GLib.

    En revanche, ton autre exemple semble bizarre. Cela devrait fonctionner pour une définition de ce type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    char * nom_sphere[] = 
    {
       "toto",
       "tata",
       "titi",
    };
    G_N_ELEMENTS (nom_sphere) devrait renvoyer 3.

  5. #25
    Membre éclairé
    Profil pro
    Retraité
    Inscrit en
    Novembre 2009
    Messages
    331
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2009
    Messages : 331
    Par défaut
    La place de la virgule
    Je préfère placer la virgule après les blancs et juste avant le nouveau mot, et donc aussi au début de la ligne et non à la fin.
    Ceci résout automatiquement le problème de la virgule en trop et de plus favorise ma dernière manie: l'alignement vertical.
    Un example:
    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
     
    typedef enum {
       FFT_NORM_NONE = 0
      ,FFT_NORM_SYMMETRIC
      ,FFT_NORM_FORWARD
      ,FFT_NORM_BACKWARD
    } FFT_norm;
     
    void gg_fourier_update (void)
    {
      if (fourier_win != NULL) {
        FFTParams p;
        if (fourier_params_get (&p) == RETURN_SUCCESS) {
          gg_set_int  (but_inverse  , p.invflag);
          gg_set_int  (but_dumpDC   , p.dcdump);
          gg_set_dble (but_padding  , p.oversampling);
          gg_set_int  (but_round2n  , p.round2n);
          gg_set_int  (but_filter   , p.filter);
          gg_set_dble (but_padding  , p.padding);
          gg_set_int  (but_outsegmt , p.outsegmt);
          gg_set_int  (but_out_fft  , p.output);
        }
      }
    }
    Les commandes Emacs qui permettent d'agir sur un rectangle (C-x r k, C-x r t, etc) sont bien pratique pour manipuler ce code.

  6. #26
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 605
    Par défaut
    Citation Envoyé par liberforce Voir le message
    Je le redis, utilise G_N_ELEMENTS. Il y a des problèmes dans ta déclaration de macro.
    Je trouver un problème de cette macro ! Celui qui me génait déjà avant !

    En fait, si j'utilise une variable globale* définie dans un autre fichier ça plante

    J'ai des tableaux qui doivent rester constant que j'appelle dans plein de fonctions. C'est eux qui me gènent
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

Discussions similaires

  1. Lier les choix des combo box
    Par chepa dans le forum Excel
    Réponses: 3
    Dernier message: 13/07/2013, 16h58
  2. remplir des combo box par une fonction ?
    Par angelevil dans le forum VB.NET
    Réponses: 5
    Dernier message: 06/10/2010, 23h12
  3. Regions et départements dans des Combo Box
    Par realtux dans le forum NetBeans
    Réponses: 4
    Dernier message: 16/06/2010, 12h23
  4. Mettre des items en couleur dans un combo box
    Par wrm8787 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/03/2009, 06h53
  5. Réponses: 1
    Dernier message: 20/06/2006, 17h39

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