上面是linux下GTK+配置所需要的库,关于各个库的功能,查看http://www.gtk.org/overview.php,至于库的下载在http://www.gtk.org/download/linux.php

linux下GTK+的一键安装和配置:(fedora16和centos下配置成功)

必要组件:

# yum install gtk2 gtk2-devel gtk2-devel-docs

可选组件:

# yum install gnome-devel gnome-devel-docs

查看是否已经安装gtk

$ pkg-config --list-all |grep gtk

显示结果一般如下
gtk+-unix-print-2.0 GTK+ - GTK+ Unix print support
gtk+-x11-2.0 GTK+ - GTK+ Graphical UI Library (x11 target)
pygtk-2.0 PyGTK - Python bindings for GTK+ and related libraries
gtk+-2.0 GTK+ - GTK+ Graphical UI Library (x11 target)
gtk-doc gtk-doc - API documentation generator

安装好之后,写个程序测试下

#include <gtk/gtk.h>  

int main(int argc, char *argv[])
{
GtkWidget *windows;
gtk_init(&argc,&argv); windows = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(windows), "Hello,World");
    gtk_widget_show(windows);  

    gtk_main();  

    return 0;
}

  

GTK+程序的编译链接执行

$ gcc -o hello hello.c `pkg-config –libs –cflags gtk+-2.0`

命令说明:    gcc 编译命令

hello.c 源程序文件名

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

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

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

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

cflags 前面是两个短线 --

libs前面也是两个短线 --

运行程序

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

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

程序分析

GtkWidget *windows; 相当于Windows下的WNDCLASS结构体,不过window在此只是一个窗口指针,用于指向函数gtk_window_new()函数返回的窗口地址而已。

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

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

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

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

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

八、总结

创建窗口主要步骤:

1、GtkWidget *windows;

2、gtk_init(&argc,&argv);

3、windows=gtk_window_new(GTK_WINDOW_TOPLEVEL);

4、gtk_widget_show(windows);

5、gtk_main();

GTK安装的更多相关文章

  1. 【Gtk】feorda下gtk安装详解

    feorda下gtk安装详解   1.yum在线安装gtk 1)pkg-config -version查看pkg-config的版本(本机测试是0.25)    2)安装必要组建:(在root权限下) ...

  2. Ubuntu下安装GTK的三种方法

    我利用此方法成功在UBUNTU 10.04下安装GTK 2.20.1. 一.安装 1.安装gcc/g++/gdb/make 等基本编程工具 $sudo apt-get install build-es ...

  3. 在树莓派Raspbian下安装支持Hard Float的.NET环境

    [题外话] 最近入了个树莓派玩,系统装的官方推荐的Hard Float的Raspbian,由于衍生自Debian,所以Mono什么的非常好装.但是官方源中的Mono在Hard Float的Raspbi ...

  4. 解决VS2015安装Android SDK 后文件不全及更新问题

    近日安装VS2015专业版后.想进行Android开发,就新建了一个Blank app 结果报[值不能为空 null 参数名:path1] 1:首先检查工具 xamarin 工具那设置的SDK路径对不 ...

  5. Centos7 安装MPlayer过程详解

    使用自带的totem基本上都无法播放视频,各种格式都不支持,令人无语.想到了MPlayer,为了看片,决定编译安装,过程真的是折腾.如图是自带的Totem播放提示,安装了解码还是无法播放,反正要找其他 ...

  6. Xamarin Anroid开发教程之下载安装Xamarin

    Xamarin Anroid开发教程之下载安装Xamarin Xamarin在过去安装时都会检查系统中是否安装了前面所提供的内容.而后来,Xamarin安装时只提供安装步骤,其它内容都需要读者自己下载 ...

  7. CentOS 6.3中安装OpenCV2.3.1

    下面为自己测试可用的OpenCV在Linux下的安装步骤 .检查并安装相关程序,确保gtk安装成功,否则无法显示图片 yum install gcc-c++ yuminstall gtk-devel. ...

  8. Xamarin.Forms教程下载安装Windows版的Xamarin开发工具

    Xamarin.Forms教程下载安装Windows版的Xamarin开发工具 下载安装Windows版的Xamarin开发工具 本节将讲解如何下载并安装Windows版的Xamarin开发工具. 下 ...

  9. 第【一】部分Netzob项目工具的安装配置

    第[一]部分Netzob项目工具的安装配置 声明: 1)本报告由博客园bitpeach撰写,版权所有,免费转载,请注明出处,并请勿作商业用途. 2)若本文档内有侵权文字或图片等内容,请联系作者bitp ...

随机推荐

  1. nginx configuration

    Now that you know how to manage the service itself, you should take a few minutes to familiarize you ...

  2. eclipse安装adt插件后工具栏不显示android相关图标

    到eclipse官网下载luna(开发android,推荐此版本,当前最新版4.4.2)版本的eclipse http://ftp.jaist.ac.jp/pub/eclipse/technology ...

  3. 雷林鹏分享:C# 泛型(Generic)

    C# 泛型(Generic) 泛型(Generic) 允许您延迟编写类或方法中的编程元素的数据类型的规范,直到实际在程序中使用它的时候.换句话说,泛型允许您编写一个可以与任何数据类型一起工作的类或方法 ...

  4. t-SNE 聚类

    一个有效的数据降维的方法 t-SNE,类似PCA的主成分降维分析. 参考: t-分布邻域嵌入算法(t-SNE algorithm)简单理解 t-SNE初学 很好的教程:An illustrated i ...

  5. HTML基础知识(w3school)

    http://www.w3school.com.cn/tags/tag_meta.asp

  6. English trip -- Iris老师整理的一般时态

    一般疑问句: 用Yes/No 就能回答的问句. a.g Are you an office worker? 问句 <                                        ...

  7. 12月16日 增加一个购物车内product数量的功能, 自定义method,在helper中定义,计算代码Refactor到Model中。

    仿照Rails实战:购物网站 教材:5-6 step5:计算总价,做出在nav上显示购物车内product的数量. 遇到的❌: 1. <% sum = 0 %> <% current ...

  8. android------锁屏(手机启动出现锁屏界面)

    以前用过一个红包锁屏的软件,第一次打开手机出现锁屏,滑动领取收益,当时觉得这功能不错,就查阅资料,写了一个案例, apk运行流程: 进入软件--->启动服务--->关闭手机(可先退出应用) ...

  9. PHP导出为Word格式

    <?php $file = './html.doc'; $table = '<table width="100%"><tr><td>'.i ...

  10. 根据条件设置poplist的值集

    需求:在当前页面的pageButtonBar中有一个下拉选择框,选择框中的值集根据某些条件有不同. public class SupplierInfoReviewCO extends OAContro ...