初识 GTK

初识 GTKGTK+是一种函数库是用来帮助制作图形交互界面的。整个函数库都是由C语言来编写的。GTK+函数库通常也叫做GIMP工具包。

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

一、什么是GTK+

    GTK+ 是一种函数库是用来帮助制作图形交互界面的。整个函数库都是由C 语言来编写的。 GTK+函数库通常也叫做 GIMP 工具包。因为,一开始GTK+是用来编写“GIMP”–这个图形处理软件的。从那以后, GTK+就逐渐成为了Linux and BSDUnix 下最受欢迎的用于图形交互界面(GUI)设计的工具包之一。时至今日,大多数的Linux 下的GUI 软件(有图形交互界面)都是由GTK+或者QT 来编写的。GTK+是一种面向对象式的API(applicationprogramming interface)。Glib 是GTK+的基础,而这种“面向对象系统”正是由“Glib”来提供的。GObject 也就是这种面向对象的机制可以为 GTK+绑定很多种开发语言。目前存在的语言有:C++, Python, Perl, Java, C#,PHP,等其他高级语言。
GTK+ 和以下“函数库”存在着依赖关系
   • Glib
   • Pango
   • ATK
   • GDK
   • GdkPixbuf
   • Cairo
   Glib 是一种通用的函数库。她提供了各种各样的语言特性,譬如说:各种数据类型,字符串函数,错误通知,消息队列和线程。Pango 是一种函数库,用来实现国际化和本地化的功能。ATK是一种平易近人的工具函数包,她提供了快捷键服务为肢体有缺陷的人使用电脑提供了便利。GDK 是一种函数库,她为整个GTK+图形库系统提供了一些底层的“图形实现”和“窗口实现”的方法。在Linux 中GDK 是位于X 服务器和GTK+函数库之间的。在最近的GTK+发行版本中,越来越多的功能性函数,都交给了Cairo 函数库来处理。GdkPixbuf 函数库是一种函数库工具包用于加载图像和维护图像“缓存”的(pixel buffer)。Cairo 是一种函数库用于制作二维图像。从GTK+2.8 版本以后,Cairo 就正式成为GTK+系统中的一员了。Gnome and XFce 桌面环境系统都是用GTK+来编程实现的. SWT and wxWidgets 是种很著名的编程框架,也是用GTK+来编程实现的。最杰出的GTK+软件的代表是Firefox (火狐浏览器)和 Inkscape。

二、安装GTK+开发环境

1. 安装code::blocks
  linux:  http://www.codeblocks.org/downloads/26#linux64 我下载的是centos版的
  windows:  http://www.codeblocks.org/downloads/26#linux64 可直接选择带minGW的版本

2.安装GTK+(YUM安装)

  linux:  

yum install gtk2 gtk2-devel gtk2-devel-docs

Jetbrains全家桶1年46,售后保障稳定

  windows:
     http://www.gtk.org/download/win32.php 下载all-in-one bundle 安装即可

3.配置code::blocks中的GTK+编译器
  现在安装了gtk后,可以用pkg-config –list-all 查看,其中应该包含一个gtk+-2.0.
  在code::blocks中 默认的编译器是GNU GCC Compiler,我们为 GTK单独设置一个编译器:
  Settings -> Compiler settings ,选择GNU GCC Compiler 然后点击 copy ,输入一个gtk编译器的名称:GUN GCC Compiler GTK2.0,并设置为默认编译器,点击 set as default .然后在 Compiler settings -> Other options -> 添加`pkg-config –cflags gtk+-2.0`(目的是添加include),在linker settings -> Other linker options 中也添加 pkg-config –libs gtk+-2.0`(目的是添加lib),如果在windows下运行时候可能会报错,如果缺少zlib1.dll ,放在 工程/bin/Debug下即可。

 

4.测试一下环境是否正确
 在codeblocks中新建一个工程,选择上面新添加的编译器(GUN GCC Compiler GTK2.0),然后在main.c中添加代码:

#include <gtk/gtk.h>
int main( int argc, char *argv[])
{
    GtkWidget *window;
    gtk_init(&argc, &argv);
    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_widget_show(window);
    gtk_main();
    return 0;
}

编译并执行出现一个空白窗体(linux下在命令行下执行),即代表gtk+的开发环境配置成功了。顺便说下可以直接用gcc命令行生成:
gcc -o hello-world main.c  `pkg-config –cflags –libs gtk+-2.0`

下面是在windows 7 和 linux(centos) 下的效果

 初识 GTK初识 GTK

 

转自:http://www.cnblogs.com/ikodota/archive/2013/03/08/step_by_step_study_gtk_opening.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/234910.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 使用Oracle DBLink进行数据库之间对象的訪问操作

    使用Oracle DBLink进行数据库之间对象的訪问操作

    2022年2月6日
    53
  • 最新彻底禁止win10自动更新[通俗易懂]

    最新彻底禁止win10自动更新[通俗易懂]1、打开服务或者WIN+R键打开“运行”输入services.msc2、打开服务后需要禁3个服务BackgroundIntelligentTransferServiceWindowsUpdateUpdateOrchestratorServicewin10升级到1809版后,多了一个“WindowsUpdateMedicServic…

    2022年6月4日
    42
  • php面试题目100及最佳答案_社区工作者面试题目

    php面试题目100及最佳答案_社区工作者面试题目Php面试100题汇总1,Http和Https的区别第一:http是超文本传输协议,信息是明文传输,https是具有安全性的ssl加密传输协议第二:http和https使用的是完全不同的连接方式,端口也不一样,前者80或者443第三:http连接很简单,是无状态的。https协议是由ssl+http协议构建的可进行加密传输,身份认证的网络协议。2.什么方法来加快页面的加载速度1,用到服务器资源

    2022年8月29日
    5
  • nginx默认安装80端口修改[通俗易懂]

    nginx默认安装80端口修改[通俗易懂]nginx默认安装80端口修改nginx默认安装80端口修改nginx默认安装80端口修改nginx安装启动发现80默认端口冲突,一般是和tomcat服务冲突了。所以在这里我们直接取修改nginx的默认端口。通过whereisnginx我们知道了nginx的配置文件目录在配置文件目录下的sites-available目录中我们找到了default文件,进行修改,修改前先备份。vi进去后将80端口修改成8888端口号修改后重启nginx,启动后没有报错。改对应映射nginx.co

    2025年9月7日
    4
  • 6.5——ADRC学习

    6.5——ADRC学习深刻理解PID1.    典型的传递函数——一阶惯性环节一个储能元件(如电感,电容)与一个耗能元件(如电阻)的组合,就能构成一阶惯性环节。如一个RC电路特点:当输入量发生突变时,输出量不能突变,只能按照指数规律逐渐变换,这就反应了该环节具有惯性。(也就是说,惯性环节的输出一开始并不与输入同步按比例变化,直到过渡过程结束,y(t)才能与x(t)保持比例。)而惯性环节的时间常数就是惯性的量度。 我们的…

    2022年5月19日
    37
  • Spring Boot集成AD域实现统一用户认证

    1.引言由于近期需要开发基于JWTToken的统一身份认证服务项目,因此需要集成公司原有的AD域实现用户的身份认证问题,项目采用SpringBoot框架进行开发,在此将相应的集成开发步骤进行记录。1.1LDAP简介目录是一个为查询、浏览和搜索而优化的专业分布式数据库,它呈树状结构组织数据,就好象Linux/Unix系统中的文件目录一样。目录数据库和关系数据库不同,它有…

    2022年4月8日
    241

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号