Bonjour,
J'ai créé une interface avec glade 3 comportant une combobox. Je l'ai créée directement dans l'interface et j'ai réussi à la remplir directement depuis le code (Pour pouvoir la modifier dynamiquement). Voilà comment je m'y suis pris :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
GtkComboBox* comboClients = GTK_COMBO_BOX(gtk_builder_get_object(data->builder,"combobox1"));
	GtkTreeIter iter;
	GtkListStore *store = gtk_list_store_new(1,G_TYPE_STRING);
	GtkCellRenderer *cell = gtk_cell_renderer_text_new();
 
	gtk_list_store_append(store,&iter);
	gtk_list_store_set(store,&iter,0,"1st list item",-1);
	gtk_list_store_append(store,&iter);
	gtk_list_store_set(store,&iter,0,"2nd list item",-1);
 
	gtk_combo_box_set_model(GTK_COMBO_BOX(comboClients), GTK_TREE_MODEL(store));
	gtk_cell_layout_pack_start( GTK_CELL_LAYOUT( comboClients ), cell, TRUE );
	gtk_cell_layout_set_attributes( GTK_CELL_LAYOUT( comboClients ), cell, "text", 0, NULL );
	gtk_combo_box_set_active(GTK_COMBO_BOX(comboClients),0);
Les éléments sont parfaitement intégrés dans la liste déroulante. Le problème est que j'ai besoin de créer un comboBoxEntry. Le but serait d'afficher dans l'entry l'élément sélectionné dans la liste ou de trouver si elle existe la saisie utilisateur dans la liste. Le code ci dessus m'affiche cette erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Gtk-CRITICAL **: gtk_entry_set_text: assertion 'text != NULL' failed
Les éléments sont cependant listés dans le comboboxentry mais me réaffichent l'erreur dans la console quand je les sélectionne.
J'ai tenté de rajouter ces lignes pour remplir l'entry sans succès :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
GtkWidget * saisie = GTK_ENTRY (GTK_BIN (comboClients)->child);
gtk_entry_set_text(saisie,gtk_combo_box_get_active_text (GTK_COMBO_BOX_ENTRY (comboClients)));
L'erreur reste la même. Cependant gtk_entry_set_text(saisie,"texte") affiche "texte" dans la zone de saisie.
Merci de votre aide