Bonjour,

J'ai crée un bouton dans une barre d'outil affichant la lettre G au liu d'un icone.

Je n'arrives pas à utiliser gtk_widget_hide dessus

J'ai utilisé la fonction dépréciée gtk_insert_stock pour afficher un autre icone car j'arrives bien à m'en servir.

J'ai essayé d'utiliser gtk_toolbar_insert sans plus de succès.

J'arrives à créer et afficher mon icone avec la lettre via
gtk_button_new_with_label puis gtk_container_add

le retour de la fonction gtk_button_new_with_label est stocké dans un GtkWidget, je comprends donc pas pourquoi gtk_widget_hide ne fonctionne pas.

Pour mon test gtk_toolbar_insert, je ne suis pas sûr que GTK_TOOL_ITEM existe, je l'ai mis suite à msg d'erreur "GTK_IS_TOOL_ITEM failes " dans la console. L'utilisation de GTK_IS_TOOL_ITEM à la place de GTK_TOOL_ITEM j'ai une erreur à la compilation.

J'ai utilisé gtk_container_add suite à info je ne sais plus où dans la doc

gtk_toolbar_insert que je n'ai pas réussi à utiliser demande un GtkToolItem, moi j'ai mis un GtkWidget, GtkToolItem étant contenun dans un widget, si j'utilise une macro de conversion ça devrait marcher non ? Si c'est le cas mon prob. vient probablement de mon utilisation de GTK_TOOL_ITEM

Merci pour votre aide

Voici mon code :

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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
 
#include <stdlib.h>
#include<gtk/gtk.h>
 
int main (int argc, char **argv)
{
GtkWidget 	*fenetre;
GtkWidget 	*box;
GtkWidget 	*barre_outil;
GtkWidget	*bouton_g;
GtkWidget	*bouton_quit;
 
	gtk_init (&argc, &argv);
 
	fenetre = gtk_window_new (GTK_WINDOW_TOPLEVEL);
	gtk_window_set_title (GTK_WINDOW (fenetre), "Test");
	gtk_window_set_default_size(GTK_WINDOW(fenetre), 640, 480); 
	g_signal_connect(G_OBJECT(fenetre),"delete-event",G_CALLBACK(gtk_main_quit),NULL);
 
	box=gtk_vbox_new(FALSE,5); 
   	gtk_container_add(GTK_CONTAINER(fenetre),box);
 
	barre_outil=gtk_toolbar_new();
	gtk_box_pack_start(GTK_BOX(box),barre_outil,FALSE,FALSE,0);
 
	bouton_g=gtk_button_new_with_label("G");
//	gtk_toolbar_insert(GTK_TOOLBAR(barre_outil),GTK_TOOL_ITEM(bouton_g),-1);
	gtk_container_add(GTK_CONTAINER(barre_outil),GTK_WIDGET(bouton_g));
 
/*  code posant problème */
	gtk_widget_hide(bouton_g);
 
/*  fin code posant problème */
 
	bouton_quit=gtk_toolbar_insert_stock(GTK_TOOLBAR(barre_outil),GTK_STOCK_QUIT,NULL,NULL,gtk_main_quit,NULL,-1);	
 
/* code fonctionnant :
	gtk_widget_hide(bouton_quit);
*/
 
	gtk_widget_show_all(fenetre);
  	gtk_main();
  	return 0;
}