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 :
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
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 cependant listés dans le comboboxentry mais me réaffichent l'erreur dans la console quand je les sélectionne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Gtk-CRITICAL **: gtk_entry_set_text: assertion 'text != NULL' failed
J'ai tenté de rajouter ces lignes pour remplir l'entry sans succès :
L'erreur reste la même. Cependant gtk_entry_set_text(saisie,"texte") affiche "texte" dans la zone de saisie.
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)));
Merci de votre aide
Partager