初识 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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • IMG镜像写盘工具physdiskwrite,用于MikroTik RouterOS的安装(Windows)

    IMG镜像写盘工具physdiskwrite,用于MikroTik RouterOS的安装(Windows)常用img的备份:1、linux下使用dd,Windows下使用WinImage2、或者还有很多,比如再生龙等等。img还原:1、Win32DiskImager2、physdiskwritephysdiskwrite的简单使用:physdiskwrite.exe-uusb.img出现如下提示:千万不要选错了盘。软件参数:…

    2025年6月29日
    2
  • Latex数学公式-求和符号上下限的限制[通俗易懂]

    Latex数学公式-求和符号上下限的限制[通俗易懂]我们需要求和符号写成这样的形式:说明输入显示行间$p=\sum\limits_{n=1}^Na_n$p=∑n=1Nanp=∑n=1Nanp=\sum\limits_{n=1}^Na_n独立$$p=\sum_{n=1}^Na_n$$p=∑n=1Nanp=∑n=1Nanp=\sum_{n=1}^Na_n……

    2022年10月12日
    2
  • pytorch学习笔记(十):MLP[通俗易懂]

    pytorch学习笔记(十):MLP[通俗易懂]文章目录1.隐藏层2.激活函数2.1ReLU函数2.2sigmoid函数2.3tanh函数3多层感知机4.代码实现MLP4.1获取和读取数据4.2定义模型参数4.3定义激活函数4.4定义模型4.5定义损失函数4.6训练模型小结1.隐藏层多层感知机(multilayerperceptron,MLP)在单层神经网络的基础上引入了一到多个隐藏层(hiddenlayer)。隐藏层位于输入层和输出层之间。图3.3展示了一个多层感知机的神经网络图,它含有一个隐藏层,该层中有5个隐

    2022年6月16日
    33
  • 基于jQuery的自适应图片左右切换

    效果预览:http://hovertree.com/code/jquery/smjv6d0n.htm基于jQuery编写的横向自适应幻灯片切换特效全屏自适应jquery焦点图切换特效,在IE6这个

    2021年12月21日
    52
  • Java 数组转 List 的 4 种方式

    Java 数组转 List 的 4 种方式目录前言【一】最常见方式(未必最佳)【二】数组转为List后,支持增删改查的方式【三】通过集合工具类Collections.addAll()方法(最高效)问题解答总结前言本文介绍Java中数组转为List三种情况的优劣对比,以及应用场景的对比,以及程序员常犯的类型转换错误原因解析。【一】最常见方式(未必最佳)通过Arrays.asList(strArray)方式,将数组转换List后,不能对List增删,只能查改,否则抛异常。关键代码:Listlist=Arrays.asList(

    2022年8月23日
    4
  • 单片机_MFRC522射频模块使用方法(含代码)

    单片机_MFRC522射频模块使用方法(含代码)MFRC522射频模块使用方法本文只讲解MFRC522射频模块使用方法(下文简称522模块),不包含原理说明,原理下篇~一、管脚解释522模块总共有8个引脚,除去复位、GND接地、3.3V电源、NC端悬空、SCK时钟端,剩余3个引脚,起数据作用。二、连接方法这里主要使用IIC的方法,相信写过IIC的同学都很熟悉这段代码。不熟悉也没关系,后文会附上52单片机的LCD1602显示UID的实现代码,包含UART测试代码。显而易见,通过总线办法读取数据只需要依照手册写代码就可以读出来,这里官方提供了

    2022年7月26日
    45

发表回复

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

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