Linux操作系统下GTK界面编程
创始人
2024-07-19 18:50:29
0

 

今天,开始在工作之余,抽出时间来学习linux界面编程。我计划在未来的半年内,学会 linux下的GTK+界面编程。这个文档作为我学习linux编程的***个文档,我会尽量做的详 细一点。我所用的linux版本是Red Hat 9.0。

***个程序——Hello,World

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

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

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

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

       输入完毕后敲回车键即可创建目录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键后(注意左下方有个--插入--),进入编辑模式

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

  1. #include   
  2.  
  3. int main(int argc,char*argv[])  
  4.  
  5. {  
  6.  
  7.        GtkWidget *window;  
  8.  
  9.        gtk_init(&argc,&argv);  
  10.  
  11.        window=gtk_window_new(GKT_WINDOW_TOPLEVEL);  
  12.  
  13.        gtk_window_set_title(GTK_WINDOW(window),”Hello,World”);  
  14.  
  15.        gtk_widget_show(window);  
  16.  
  17.        gtk_main();  
  18.  
  19.        return 0;  
  20.  
  21. }  
  22.  

现在代码输入完毕,需要保存文件并推出编辑器,先按一下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();

 

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

目前,X窗口(Xwindow)和GNU编译系统已成为应用linux或unix操作系统的计算机工作站和大型计算机上最主要的图形用户界面系统。而GTK正是两者结合的编程开发包,它比以往用的Xwindow/Motif编程更为简单方便,功能也很强大。所以,我想会有着较好的应用前景。这是我的心得体会,希望能够对大家有所帮助!

【编辑推荐】

  1. 一个中国留学生在德国所感受到的Linux氛围
  2. 微软曾将开源与Linux混为一谈
  3. IT十大死对头:Linux单挑Windows 谷歌对抗所有人
  4. 并发编程的 15 条建议
  5. 2010最危险的编程错误
  6. 提高编程效率的14件事

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...