1. #1
    Membre du Club Avatar de Persistant
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    septembre 2016
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : septembre 2016
    Messages : 45
    Points : 64
    Points
    64

    Par défaut [Gtk+ 2]Déterminer le nombre de widgets dans un container

    Bonjour à tous,

    Savez-vous comment connaître le nombre de widget/enfant inséré dans un GtkContainer ?

    D'avance, merci pour vos lumières

    PostEdit:
    Je viens de trouver ça, mais c'est assez gênant de devoir faire plusieurs boucles à chaque fois(g_list_length, gtk_container_get_children

    GList *gtk_container_get_children (GtkContainer *container);
    guint g_list_length (GList *list);

    PS: Mon but est, a partir d'un widget, de déterminer sa position/index dans le container qui le contient et le nombre de ses frères

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    juin 2009
    Messages
    1 220
    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 220
    Points : 1 808
    Points
    1 808

    Par défaut

    Bonjour,

    plutôt que d'essayer de déterminer la position d'un widget à chaque fois que tu y accèdes, stocke plutôt sa position dans le widget lui même au moment où tu l'ajoutes dans le conteneur.
    Tu peux utiliser g_object_set_data pour associer un pointeur vers une type simple ou une structure, ou bien tu peux utiliser g_object_set_property pour associer des propriétés contenant le numéro de ligne et le numéro de colonne.

    Sinon, je ne comprends pas ce que tu veux dire par "faire plusieurs boucles à chaque fois".
    Pour ce qui est du nombre de widgets, tu as effectivement g_list_length.

  3. #3
    Membre du Club Avatar de Persistant
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    septembre 2016
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : septembre 2016
    Messages : 45
    Points : 64
    Points
    64

    Par défaut

    Merci pour l'aide.

    J'aime bien l'idée d'utiliser g_object_set_data pour stoker les valeurs calculé.

    Après avoir encore cherché, Je pense que je vais utiliser gtk_container_foreach pour faire les calcules au lieux de gtk_container_get_children ce qui réduit le nombre de "boucles for"

    Il ne me restera plus qu'a utiliser les signaux add et remove pour savoir quand mettre a jour les valeurs.

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

Discussions similaires

  1. Déterminer le nombre de mots dans deux fichiers de texte
    Par daniel1985 dans le forum Général Java
    Réponses: 1
    Dernier message: 14/12/2012, 11h51
  2. déterminer le nombre d'auteurs dans des tables différentes
    Par fraisa1985 dans le forum PHP & MySQL
    Réponses: 7
    Dernier message: 28/11/2012, 16h31
  3. Déterminer le nombre de secondes dans un temps donné.
    Par SpeedOverflow dans le forum Débuter
    Réponses: 4
    Dernier message: 17/05/2011, 17h54
  4. Réponses: 1
    Dernier message: 09/11/2009, 12h30
  5. Nombre de widget dans un vertical panel
    Par corbel88 dans le forum GWT
    Réponses: 12
    Dernier message: 25/04/2008, 17h07

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