废话不多说,下面是通过Glade
工具生成的xml
文件,配合上模板代码,绘制主窗口。
C模板代码:
#include <gtk/gtk.h>
int main(int argc, char *argv[]) {
GtkBuilder *builder = NULL;
GtkWidget *window = NULL;
gtk_init(&argc, &argv);
builder = gtk_builder_new_from_file("./glade/window_main.glade");
window = GTK_WIDGET(gtk_builder_get_object(builder, "window_main"));
gtk_builder_connect_signals(builder, NULL);
g_object_unref(builder);
gtk_widget_show(window);
gtk_main();
return 0;
}
void on_window_main_destroy(void) { gtk_main_quit(); }
Glade
工具生成的xml
文件:
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.20.0 -->
<interface>
<requires lib="gtk+" version="3.20"/>
<object class="GtkWindow" id="window_main">
<property name="can_focus">False</property>
<property name="title" translatable="yes">main window</property>
<property name="window_position">center</property>
<property name="default_width">640</property>
<property name="default_height">480</property>
<signal name="destroy" handler="on_window_main_destroy" swapped="no"/>
<child>
<placeholder/>
</child>
</object>
</interface>
编译命令:
gcc -o win-demo main.c `pkg-config --cflags --libs gtk+-3.0` -export-dynamic
效果图:
