Depuis GTK+ 3, GTK+ inclue GtkBuilder qui à la même utilité que la libglade, c'est à dire manipuler des fichiers XML décrivant une interface graphique. 
Interface basique : 
	
	| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 
 | <?xml version="1.0" encoding="UTF-8"?>
<interface>
  <!-- interface-requires gtk+ 3.0 -->
  <object class="GtkWindow" id="window">
    <property name="can_focus">False</property>
    <signal name="destroy" handler="on_window_destroy" swapped="no"/>
    <child>
      <object class="GtkButton" id="button1">
        <property name="label" translatable="yes">button</property>
        <property name="visible">True</property>
        <property name="can_focus">True</property>
        <property name="receives_default">True</property>
      </object>
    </child>
  </object>
</interface> | 
 Exemple de code c : 
	
	| 12
 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
 
 | #include <gtk/gtk.h>
 
void 
on_window_destroy (GtkWidget *object, gpointer user_data)
{
    gtk_main_quit ();
}
 
int
main (int argc, char *argv[])
{
    GtkBuilder      *builder; 
    GtkWidget       *window;
 
    gtk_init (&argc, &argv);
 
    builder = gtk_builder_new ();
    gtk_builder_add_from_file (builder, "window.ui", NULL);
    window = GTK_WIDGET (gtk_builder_get_object (builder, "window"));
    gtk_builder_connect_signals (builder, NULL);
 
    g_object_unref (G_OBJECT (builder));
 
    gtk_widget_show (window);                
    gtk_main ();
 
    return 0;
} | 
 que l'on compile avec 
	
	gcc -Wall -g -o tutorial main.c `pkg-config --cflags --libs gtk+-3.0` -export-dynamic
 
Exemple de code Vala:
	
	| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 
 | using Gtk;
 
[CCode (instance_pos = -1)]
public void on_window_destroy (Widget window)
{
	Gtk.main_quit();
}
 
int main (string[] args)
{
	Builder builder;
	Window window;
	Gtk.init (ref args);
	builder = new Builder ();
	builder.add_from_file ("window.ui");
	window = builder.get_object ("window") as Window;
	builder.connect_signals (null);
	window.show_all ();
	Gtk.main ();
	return 0;
} | 
 que l'on compile par 
	
	valac --pkg gtk+-3.0 --pkg gmodule-2.0 main.vala
 
						
					
Partager