Gtkbutton is inherited from gtkbin. Therefore, it is very simple to create an image button. If you only need to put an image button, as follows:
Gtkwidget * hbox, * playbtn, * pausebtn, * stopbtn, * placeholder, * dlabel;
Gtkwidget * playimg, * pauseimg, * stopimg;
Hbox = gtk_hbox_new (false, 5 );
Playbtn = gtk_button_new ();
Pausebtn = gtk_button_new ();
Stopbtn = gtk_button_new ();
Playimg = gtk_image_new ();
Gtk_image_set_from_stock (gtk_image (playimg), gtk_stock_media_play, gtk_icon_size_large_toolbar );
Gtk_container_add (gtk_container (playbtn), playimg );
Pauseimg = gtk_image_new ();
Gtk_image_set_from_stock (gtk_image (pauseimg), gtk_stock_media_pause, gtk_icon_size_large_toolbar );
Gtk_container_add (gtk_container (pausebtn), pauseimg );
Stopimg = gtk_image_new ();
Gtk_image_set_from_stock (gtk_image (stopimg), gtk_stock_media_stop, gtk_icon_size_large_toolbar );
Gtk_container_add (gtk_container (stopbtn), stopimg );
Placeholder = gtk_label_new ("");
Dlabel = gtk_label_new ("Hi, guys! My name is transformer ~ ");
Gtk_box_pack_start (gtk_box (hbox), playbtn, false, false, 5 );
Gtk_box_pack_start (gtk_box (hbox), pausebtn, false, false, 5 );
Gtk_box_pack_start (gtk_box (hbox), stopbtn, false, false, 5 );
Gtk_box_pack_start (gtk_box (hbox), placeholder, true, true, 5 );
Gtk_box_pack_start (gtk_box (hbox), dlabel, false, false, 5 );
In this Code, the image is from the stock, which is the three icons: Play, pause, and stop.
If you want to create an image and a label image button, create an hbox, put the image and label, and put the hbox into the button.