用GTK+来创立一个带界面的C语言程序之1——一个简单的窗口

小微 科技用GTK+来创立一个带界面的C语言程序之1——一个简单的窗口已关闭评论96字数 2003阅读模式
摘要在编写代码之前,先初步的认识了解一下什么是GTK+。GTK+(GIMP Toolkit)是一套源码以LGPL许可协议分发、跨平台的图形工具包。也就是说,它是一个库,它支持创建基于 ...

在编写代码以前,先初步的认识了解一下什么是GTK+。

GTK+(GIMP Toolkit)是一套源码以LGPL许可协定分发、跨平台的图形工具包。也就是说,它是一个库,它支撑创立基于 GUI 的利用程序。可以把GTK+想像成一个工具包,从这个工具包中可以找到用来创立GUI的许多已经筹备好的构造块。最初GTK+是作为一个著名的开放源码项目 —— GIMP(GNU Image Manipulation Program)的副产品而创立的,现在已成为一个功能强大、设计灵便的一个通用图形库,是GNU/Linux下开发图形界面的利用程序的主流开发工具之一。GTK+尽管是用C语言写的,然而您可使用你熟识的语言来使用GTK+,例如可以用:C++,PHP, Guile,Perl, Python, TOM, Ada95, Objective C等语言来编写自己的GUI利用程序。文章源自微观生活(93wg.com)微观生活-https://93wg.com/16187.html

如果你在学习完C语言想要解脱在学习中的黑框框,GTK+是一个很不错的选择。学习起来相对于简单,容易上手。在随后的教程中咱们使用的是GTK+3.0这个版原本编写咱们的界面程序,在Linux系统中GTK+3.0的环境搭建也十分的简单,一条命令便可:文章源自微观生活(93wg.com)微观生活-https://93wg.com/16187.html

sudo apt-get install libgtk3.0*。文章源自微观生活(93wg.com)微观生活-https://93wg.com/16187.html

该命令执行完后,可以测试是不是安装胜利:文章源自微观生活(93wg.com)微观生活-https://93wg.com/16187.html

pkg-config --cflags --libs gtk+-3.0文章源自微观生活(93wg.com)微观生活-https://93wg.com/16187.html

表明GTK+3.0安装胜利文章源自微观生活(93wg.com)微观生活-https://93wg.com/16187.html

安装完成后,咱们就能够用几个简短的代码来编写一个带窗口的C语言程序。文章源自微观生活(93wg.com)微观生活-https://93wg.com/16187.html

/*一个简单的窗口base.c*/文章源自微观生活(93wg.com)微观生活-https://93wg.com/16187.html

2.声明变量文章源自微观生活(93wg.com)微观生活-https://93wg.com/16187.html

GtkWidget * window;声明了窗口控件指针。其中GtkWidget是GTK+3.0控件类型,几近所有的GTK+3.0控件都是这一类声明;window是一个变量名,固然也能够给它起一个其他的名字,诸如ss这样的名字,无非其实不建议这样做,这样只会令代码浏览起来更难,所以最佳起一个易于理解的变量名,比如window。文章源自微观生活(93wg.com)微观生活-https://93wg.com/16187.html

3.初始化GTK+3.0的命令行参数

函数gtk_init(&argc, &argv);初始化命令行参数,这在GTK+3.0程序中是必须的,无论你的设计中是不是使用到命令行参数,都需要用这一函数来初始化。

4.创立窗口

代码行window = gtk_window_new(GTK_WINDOW_TOPLEVEL);用来创立窗口。函数gtk_window_new()创立一个窗口并返回这个窗口的控件指针,在这里这个指针的赋值给了变量window;参数GTK_WINDOW_TOPLEVEL指明了窗口的类型为最上层的主窗口,它最经常使用。固然也能够去取另外一个值GTK_WINDOW_POPUP指明窗口的类型是弹出式的无边框的窗口。

5.显示窗口

代码行gtk_widget_show(window);用来显示上一步创立的窗口。函数gtk_widget_show是用来显示控件的,它没有返回类型,参数是要显示的控件指针,在这里是窗口window,所以窗口就显示出来了。

6.主事件循环

最后这个函数gkt_main();是最关键的,它是GTK+3.0的主事件循环,每一一个GTK+3.0程序都要有一个,否则程序就没法运行。所谓的事件循环指的是GUI程序运行时等待来自外部用户发出的事件,如键盘按键或者鼠标移动等,GTK+3.0将这些事件包装成信号,用户再依据信号的功能编写相应的回调函数来处理这些事件。在这段代码中并无写回调函数,所以这只是一个死循环,不做任何反映。

代码最后返回逻辑值FALSE,它至关于整型0。

7.编译运行

gcc -o base base.c `pkg-config --cflags --libs gtk+-3.0`,在终端上输入这么长一串命令无比繁琐而且容易犯错,如果长期不用的话还有可能忘怀这串命令。幸亏Linux提供了make工具,这样直接编辑好make的配置文件Makefile,在命令行中直接输入命令make就能够编译了,编译收场后输入命令./base就能够运行这个程序了。

注意:$(CC)前面不是空格,而是Tab,如果写成空格的话运行make命令会犯错。

在命令行中的`pkg-config --cflags --libs gtk+-3.0`这段命令的意思是向编译器指出了包括文件的路径,动态链接库路径以及要链接那些动态链接库。pkg-config是GTK+3.0以及GNOME2系统必备的软件包配置以及管理工具,可以在命令行中直接运行。

至此,完成为了最简单的变量的声明、窗口的创立、显示。了解GTK+3.0程序的一般结构、GTK+3.0程序中的两个关键步骤:gtk_init以及gtk_main。这些都是GTK+3.0程序必备的,为下面进一步学习GTK+3.0编程打下基础。

以上就是微观生活(93wg.com)关于“用GTK+来创立一个带界面的C语言程序之1——一个简单的窗口”的详细内容,希望对大家有所帮助!

继续阅读
 
小微
  • 版权声明: 本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们(管理员邮箱:81118366@qq.com),情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!
  • 转载请务必保留本文链接:https://93wg.com/16187.html