1 /* 最简单的窗口base.c */
2 #include <gtk/gtk.h>//包括了 GTK+中所有的控件、变量、函数和结构的声明
3 int main ( int argc , char* argv[])
4 {
5 //声明窗口控件的指针,GtkWidget是GTK+2.0控件类型 GtkWidget * 能指向任何控件的指针类
6 GtkWidget *window;
7
8 //这在GTK+2.0程序中是必需的,不管设计中是否使用到命令行参数都需要用这一函数来初始化
9 gtk_init(&argc,&argv); //初始化GTK+2.0的命令行参数
10
11 //gtk_window_new() 创建窗口并返回该窗口的控件指针
12 //GTK_WINDOW_TOPLEVEL 指明窗口的类型为最上层的主窗口,它最常用。
13 //还可以取另一个值 GTK_WINDOW_POPUP 指明窗口的类型为弹出式的无边框的窗口。
14 window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
15
16 //显示上一步创建的窗口,参数是要显示的控件的指针
17 gtk_widget_show(window);
18
19 //主事件循环,每个GTK+2.0程序都要有一个,否则程序无法执行
20 //所谓事件循环是指 GUI 程序运行时等待来自外部用户发出的事件,
21 //如键入或鼠标移动等,GTK+2.0 将这些事件包装成信号,用户再根据信
22 //号的功能编写相应的回调函数来处理这些事件。
23 //这段代码中并未写回调函数,所以这只是一个死循环,不做任何反应。
24 gtk_main();
25
26 //代码最后返回逻辑值 FALSE,它相当于整型的 0。
27 //不写这一行是完全可以的,但写这行代码更能体现程序的完整性和可读性。
29 return FALSE;
30 }
Makefile中的内容:
1 CC = gcc
2 all:
3 $(CC) -o base base.c pkg-config --cflags --libs gtk+-2.0