GtkButton is derived from GtkBin, which means that it is a container that can hold one child. (Note that the child may be a container itself!) So, you can do the following to add a label to a button:
Code:
GtkWidget *button, *label;
button = gtk_button_new ();
label = gtk_label_new ("Hello");
gtk_container_add (GTK_CONTAINER (button), label);
PangoFontDescription *fd;
fd = pango_font_description_from_string ("Sans 12");
gtk_widget_modify_font (label, fd);
pango_font_description_free (fd);
If you only want to add a label to the button, you could just create a button with gtk_button_new_with_label(). Then, create a PangoFontDescription and call gtk_widget_modify_font() on the button instead. This way is preferred. I only showed you the previous example so that you would know how to add other types of widgets to a GtkButton. (There are huge sections dedicated to this in my book,
Foundations of GTK+ Development, fyi) :)