GTK入门学习:一个简单的空白窗口
2015-07-24 15:58
429 查看
我们在终端上新建一个 .c文件,如demo.c,在文件里写如下内容:
写完代码后,我们对代码进程编译,直接用gcc编译即可,但是需要加上`pkg-config --cflags --libs gtk+-2.0` ( ` 为数字1键前面的反引号 )。
因为用gcc直接编译,默认只找标准库,而我们刚才写的代码需要依赖GTK相应的库。
pkg-config 是一个为已经安装的包提供了include,以及实际库安装的位置编译选项的输出和管理的工具;
--cflags 选项作用为自动获得预处理参数,如宏定义,头文件的位置;
--libs 选项作用为自动获得链接参数,如库及依赖的其它库的位置,文件名及其它一些连接参数;
gtk+-2.0 选项作用为指定GTK版本。
具体编译命令如下:
gcc demo.c -o demo `pkg-config --cflags --libs gtk+-2.0`
编译结束后,我们运行程序,结果如下图的一个空白窗口。
接下来,我们一起来看一下代码的含义。
我们以后写GTK代码时基本上都看到这个一个框架:
头文件〈gtk/gtk.h> 包括了GTK+中所有的控件、变量、函数和结构的声明。
gtk_init (&argc, &argv); 所有 GTK应用程序都要调用该函数,而且必须在控件定义之前使用,它为我们设置一些缺省值( 例如视觉和颜色 )映射这个函数将函数库初始化,设置缺省的信号处理函数,并检查通过命令行传递给应用程序的参数,自动完成一些必要的初始化工作。
gtk_main()是在每个Gtk应用程序都要调用的函数。程序运行停在这里等待事件(如键盘事件或鼠标事件)的发生,等待用户来操作窗口。
而我们写的代码又是什么意思呢?
GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_new()的功能创建一个窗口并返回这个窗口的控件指针。GTK_WINDOW_TOPLEVEL指明窗口的类型为最上层的主窗口,它最常用。接着创建一个GtkWidget *类型的window变量来接收。GtkWidget是GTK+控件类型,GtkWidget * 能指向任何控件的指针类型。
gtk_widget_show(window);用来显示上一步创建的窗口控件。
在这个简单例子里,所有事件都被忽略。用鼠标点击窗口右上角的“×”按钮也不能将窗口关闭。我们可以在终端敲 Ctrl + C 关闭程序。
转自:/article/1500168.html
写完代码后,我们对代码进程编译,直接用gcc编译即可,但是需要加上`pkg-config --cflags --libs gtk+-2.0` ( ` 为数字1键前面的反引号 )。
因为用gcc直接编译,默认只找标准库,而我们刚才写的代码需要依赖GTK相应的库。
pkg-config 是一个为已经安装的包提供了include,以及实际库安装的位置编译选项的输出和管理的工具;
--cflags 选项作用为自动获得预处理参数,如宏定义,头文件的位置;
--libs 选项作用为自动获得链接参数,如库及依赖的其它库的位置,文件名及其它一些连接参数;
gtk+-2.0 选项作用为指定GTK版本。
具体编译命令如下:
gcc demo.c -o demo `pkg-config --cflags --libs gtk+-2.0`
编译结束后,我们运行程序,结果如下图的一个空白窗口。
接下来,我们一起来看一下代码的含义。
我们以后写GTK代码时基本上都看到这个一个框架:
头文件〈gtk/gtk.h> 包括了GTK+中所有的控件、变量、函数和结构的声明。
gtk_init (&argc, &argv); 所有 GTK应用程序都要调用该函数,而且必须在控件定义之前使用,它为我们设置一些缺省值( 例如视觉和颜色 )映射这个函数将函数库初始化,设置缺省的信号处理函数,并检查通过命令行传递给应用程序的参数,自动完成一些必要的初始化工作。
gtk_main()是在每个Gtk应用程序都要调用的函数。程序运行停在这里等待事件(如键盘事件或鼠标事件)的发生,等待用户来操作窗口。
而我们写的代码又是什么意思呢?
GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_new()的功能创建一个窗口并返回这个窗口的控件指针。GTK_WINDOW_TOPLEVEL指明窗口的类型为最上层的主窗口,它最常用。接着创建一个GtkWidget *类型的window变量来接收。GtkWidget是GTK+控件类型,GtkWidget * 能指向任何控件的指针类型。
gtk_widget_show(window);用来显示上一步创建的窗口控件。
在这个简单例子里,所有事件都被忽略。用鼠标点击窗口右上角的“×”按钮也不能将窗口关闭。我们可以在终端敲 Ctrl + C 关闭程序。
转自:/article/1500168.html
相关文章推荐
- POJ 3252 Round Numbers(数位dp)
- jquery.dataTables学习
- android之interpolator的用法详解
- 使用FMDB事务批量更新数据库
- 使用百度编辑器时,报错:从客户端("...)中检测到有潜在危险的 Request.Form 值
- 关于memcpy和memmove的一点说明
- SQL server触发器、存储过程操作远程数据库插入数据,解决服务器已存在的问题
- GRE写作必备句型
- win32编程键盘与鼠标
- !codeforces 399D Painting The Wall-概率dp
- ASP.NET MVC三个重要的描述对象三:ControllerDescriptor和ActionDescriptor的创建
- shell编程之给变量赋值的五种方法
- 湛江附属医院消化内科电话
- Hadoop中MapReduce多种join实现实例分析
- 03寻找子数组的最大和
- iOS开发-UITextField手机号和邮箱验证
- 转:码农成长记:那些年,前台小芳教会我的一些事
- javascript属性一览
- 可爱的Jython
- 数字图像处理入门