IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo

FAQ GTK+Consultez toutes les FAQ

Nombre d'auteurs : 10, nombre de questions : 101, dernière mise à jour : 22 février 2018  Ajouter une question

 

Cette faq a été réalisée à partir des questions fréquemment posées sur les forums de www.developpez.com et de l'expérience personnelle des auteurs.
Je tiens à souligner que cette faq ne garantit en aucun cas que les informations qu'elle propose sont correctes ; les auteurs font le maximum, mais l'erreur est humaine. Cette faq ne prétend pas non plus être complète. Si vous trouvez une erreur, ou que vous souhaitez devenir rédacteur, lisez ceci.
Sur ce, nous vous souhaitons une bonne lecture, L'équipe GTK+.

SommaireGTK+GtkWidgetGtkComboBox (7)
précédent sommaire suivant
 

Les GtkComboBox utilisent les GtkTreeModel afin de définir leur contenu (comme pour les GtkTreeView). Si vous souhaitez afficher uniquement du texte, la fonction gtk_combo_box_new_text permet de vous simplifier la tâche.

Mis à jour le 14 mai 2007 sub_khaine troumad

Code C : Sélectionner tout
1
2
3
4
5
6
7
8
9
void combo_box_clear (GtkComboBox *p_combo_box) 
{ 
  GtkTreeModel *p_tree_model = NULL; 
  
  g_return_if_fail (p_combo_box != NULL); 
  
  p_tree_model = gtk_combo_box_get_model (p_combo_box); 
  gtk_list_store_clear (GTK_LIST_STORE (p_tree_model)); 
}

Mis à jour le 14 mai 2007 Fredy Kruger

Pour récupérer le texte sélectionné dans une combo box, il existe la fonction gtk_combo_box_get_active_text mais elle n'est disponible que depuis la version 2.6 de GTK+, or les GtkComboBox existe depuis la 2.4. Voici une fonction qui fait le même travail :

Code C : Sélectionner tout
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
#if GTK_CHECK_VERSION (2, 6, 0) 
#define combo_box_active_get_text(combo_box) gtk_combo_box_get_active_text (combo_box) 
#else 
char *combo_box_active_get_text (GtkComboBox *combo_box) 
{ 
  gchar *s_text = NULL; 
  gboolean b_ret = FALSE; 
  GtkTreeIter iter; 
  
  g_return_val_if_fail (combo_box != NULL, s_text); 
  
  b_ret = gtk_combo_box_get_active_iter (combo_box, &iter); 
  if (b_ret) 
  { 
    GtkTreeModel *p_model = NULL; 
  
    p_model = gtk_combo_box_get_model (combo_box); 
    if (p_model != NULL) 
    { 
      gtk_tree_model_get (p_model, &iter, 0, &s_text, -1); 
    } 
  } 
  return s_text; 
} 
#endif

Mis à jour le 14 mai 2007 P'tit Pack

Code C : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void gtk_combo_box_set_active_text (GtkComboBox *p_combo_box, const gchar *text){ 
  gint i; 
  gint nb_entry = 0; 
  GtkTreeModel *p_tree_model = NULL; 
  
  g_return_if_fail (p_combo_box); 
  g_return_if_fail (text); 
  
  p_tree_model = gtk_combo_box_get_model (p_combo_box); 
  nb_entry = gtk_tree_model_iter_n_children (p_tree_model, NULL); 
  for (i = 0; i < nb_entry; i++) 
  { 
    gtk_combo_box_set_active (p_combo_box, i); 
    if (strcmp (gtk_combo_box_get_active_text (p_combo_box), text) == 0) 
    { 
      break; 
    } 
  } 
  if (i == nb_entry) 
  { 
    gtk_combo_box_set_active (p_combo_box, 0); 
  } 
}

Mis à jour le 14 mai 2007 sub_khaine

Code C : Sélectionner tout
1
2
3
4
GtkComboBox *combo = NULL; 
const gchar *text = "Entree n+1"; 
  
gtk_combo_box_append_text (GTK_COMBO_BOX (combo), text);
Ceci n'est possible que pour les GtkComboBox créées avec la fonction gtk_combo_box_new_text.

Mis à jour le 14 mai 2007 sub_khaine troumad

Par défaut aucun item n'est sélectionné. Une case vide s'affiche donc au démarrage. Pour éviter cette case vide, il est possible de sélectionner un item.
On désigne l'item sélectionné grâce à la fonction suivante :

Code C : Sélectionner tout
1
2
3
4
5
GtkComboBox *combo = NULL; 
gint pos = 0; 
  
/* ... */ 
gtk_combo_box_set_active (GTK_COMBO_BOX (combo), pos);
La numérotation des items commence à zéro.

Mis à jour le 14 mai 2007 sub_khaine troumad

Code C : Sélectionner tout
1
2
3
4
5
6
GtkComboBox *combo = NULL; 
gint pos = 0; 
  
/* ... */ 
pos = gtk_combo_box_get_active (GTK_COMBO_BOX (combo)); 
gtk_combo_box_remove_text (GTK_COMBO_BOX (combo), pos);
Ceci n'est possible que pour les GtkComboBox créées avec la fonction gtk_combo_box_new_text.

Mis à jour le 14 mai 2007 sub_khaine troumad

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.