linux GTK+界面编程

linux GTK+界面编程(转)

Linux 操作系统下GTK+界面编程——第一个程序

今天,开始在工作之余,抽出时间来学习linux界面编程。我计划在未来的半年内,学会 linux下的GTK+界面编程。这个文档作为我学习linux编程的第一个文档,同时它也将上传到我163邮箱所附带的博客中去。所以,我会尽量做的详 细一点。以后还会有关于linux界面编程之类的学习笔记会被记录并上传到博客中。

我所用的linux版本是Red Hat 9.0

第一个程序——Hello,World

在开始写第一个程序之前,需要做一点基本操作。

我登陆linux使用的是root用户(根用户,也叫超级用户)。所以,所有笔记中产生的截图,均是root用户下的。

一、在linux桌面点击右键,在快捷菜单中选择“新建终端”选项,打开类似DOS的窗口。

二、       使用mkdir命令创建一个文件夹,文件夹命名为gtkgui,命令输入为:mkdir gtkgui   如图1.2所示

输入完毕后敲回车键即可创建目录gtkgui,需要注意的是该目录的路径是:/root/gtktui

三、使用cd命令进入目录gtkgui       命令输入:cd gtkgui

输入命令后敲回车键即可进入目录gtkgui  

四、创建第一个程序存放的目录,和第一步一样,这次在gtkgui目录下创建一个子目录1gui 然后进入1gui目录。创建目录命令:mkdir 1gui   进入目录命令:cd lgui 命令界面输入。

(注意1gui第一个字符是“一”,不是小写的L)。

小提示:若你想查看当前目录的绝对路径。可以在终端敲入命令:pwd

现在可以清楚的看到当前工作目录是“/root/gtkgui/1gui”。

五、编写代码,在开始写第一个程序之前,说说VI编辑器。假设要写的程序是firstgui.c

,则在终端中敲入 vi firstgui.c   然后回车,就进入编辑文件firstgui.c状态了,VI命令后面的文件若存在,则直接打开,若不存在,则新建一个。进入文件编辑状态后,必须按a键, 才可向文件输入东西,当编辑完后,按esc键退出编辑模式,再按shift+;键,最后输入wq(write and quit)退出VI。好了,在写程序中,再说一遍就记住了。

1、 创建 firstgui.c并编辑它

命令:vi first.c   然后敲回车进入编辑模式

必须先按下 a 键(还有其他的键也可(如i键),不过我觉得按下a键比较方便)才可输入字符,现在按一下a键,终端变成图1.8所示的效果。

按一下a键后(注意左下方有个--插入--),进入编辑模式

现在开始输入第一个程序的代码,代码原型如下:

#include <gtk/gtk.h>

int main(int argc,char*argv[])

{

       GtkWidget *window;

       gtk_init(&argc,&argv);

       window=gtk_window_new(GKT_WINDOW_TOPLEVEL);

       gtk_window_set_title(GTK_WINDOW(window),”Hello,World”);

       gtk_widget_show(window);

       gtk_main();

       return 0;

}

现在代码输入完毕,需要保存文件并推出编辑器,先按一下esc键退出编辑模式,然后按组合键:shift+;键 最后输入wq并敲回车键就保存了文件并退出编辑模式了。退出VI后的界面如图1.20所示。

使用ll命令(小写的LL)查看刚才编写的firstgui.c是否存在。

若想看文件内容,使用cat firstgui.c 命令就可看到文件firstgui.c的内容了。

六、编译代码

在终端敲入下列命令及参数,编译连接程序

命令及参数:gcc firstgui.c -o firstgui `pkg-config --cflags --libs gtk+-2.0`

命令说明:    gcc 编译命令

                     firstgui.c 源程序文件名

                     -o 编译参数,(不是0(零),是opq的o)

                     firstgui 编译连接后的可执行文件名,可以为任意合法的文件名

                     `   这个符号是和~呆在一起的那个键上,不要误认为是单引号‘

                     pkg后面与-config之间没有空格

                     cflags 前面是两个短线 --

                 libs前面也是两个短线 --

七、运行程序

键入 ./firstgui 后回车便可看到效果了。

需要注意的是,该程序当你点击窗口右上角上的小X关闭窗口时,窗口倒是关闭了。但是程序还在运行,你必须在终端下按组合键:Ctrl+c来关闭进程。

八、程序分析

GtkWidget *window; 相当于Windows下的

WNDCLASS

结构体,不过window在此只是一个窗口指针,用于指向函数gtk_window_new()函数返回的窗口地址而已。

gtk_init(&argc,&argv);

初始化界面库等一系列操作的函数,当其调用失败时,其将终止我们的程序,目前只要记住在编写任何窗口函数之前,都保证该函数是第一个被调用的就行了。

window=gtk_window_new(GTK_WINDOW_TOPLEVEL);

该函数创建一个新的GtkWidget对象(目前我认为其就是创建了一个还没有显示的窗 口),并返回该对象的指针。该函数参数仅有两个,其中一个是上面的GTK_WINDOW_TOPLEVEL,表示创建一个“主窗口”,另一个则是 GTK_WINDOW_POPUP,表示创建一个弹出窗口。

gtk_window_set_title(GTK_WINDOW(window),”Hello,World”);该函数设置窗口的标题。

gtk_widget_show(window); 该函数将窗口显示出来。

gtk_main();该函数捕获一些消息吧。在没有调用函数gtk_main_quit()函数之前,即使你关闭窗口,进程也不关闭的原因就在此。

八、总结

创建窗口主要步骤:

1、GtkWidget *window;

2、gtk_init(&argc,&argv);

3、windows=gtk_window_new(GTK_WINDOW_TOPLEVEL);

4、gtk_widget_show(window);

5、gtk_main();

最后,注意编译命令。后面的那些参数。

你可能感兴趣的:(linux GTK+界面编程)