Bonsoir :)
Cette entrée dans la foire est obsolète, GtkBuilder gère les différents formats maintenant
Version imprimable
Bonsoir :)
Cette entrée dans la foire est obsolète, GtkBuilder gère les différents formats maintenant
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 :
Exemple de code c :Code:
1
2
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>
que l'on compile avecCode:
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 #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; }
Code:gcc -Wall -g -o tutorial main.c `pkg-config --cflags --libs gtk+-3.0` -export-dynamic
Exemple de code Vala:
que l'on compile parCode:
1
2
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; }
Code:valac --pkg gtk+-3.0 --pkg gmodule-2.0 main.vala
que l'on compile avec cette ligneCode:
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 using Gtk; using System; public class MainClass { public static void Main (string[] args) { Application.Init (); MainWindow window = new MainWindow (); window.ShowAll (); Application.Run (); } } public class MainWindow { Builder builder; public MainWindow () { builder = new Builder (); builder.AddFromFile ("window.ui"); builder.Autoconnect(this); } public void ShowAll () { (builder.GetObject ("window") as Window).ShowAll (); } void on_window_destroy (object sender, EventArgs args) { Application.Quit (); } }
Code:dmcs -pkg:gtk-sharp-3.0 main.cs