Hello GTK

原创 2007年10月11日 16:10:00

本文说明如何在Linux(Ubuntu)上使用GTK创建一个简单的GTK应用程序。
级别:初级

1.安装X11开发工具包:

     apt-get install libx11-dev xlibs-dev

2.安装GTK开发工具包:

  apt-get install libgtk2.0-0 libgtk2.0-bin libgtk2.0-common libgtk2.0-dev libgtk2.0-doc gtk-doc-tools

完成这两步之后,你的机器上已经有了GTK的开发环境了。 到ftp://ftp.gtk.org/pub/gtk下下载gtk+-2.10.13.tar.gz  (gtk的源码包,主要是为了他里面含有samples),你可以不编译这个源码包,在他的examples目录里含有一些有用的sample。你可以编译来研究。

3. pkg-config
  这个工具可以用来生成编译GTK时需要的头文件的包含路径,可以在CLI(Command Line Interface,命令行界面)里执行:
 
 pkg-config gtk+-2.0 --cflags --libs

 输出如下:

-I/usr/local/include/libpng12 -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2  -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lfontconfig -lXext -lXrender -lXinerama -lXi -lXrandr -lXcursor -lXfixes -lpango-1.0 -lcairo -lX11 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0 

这是笔者本机的配置,你的机器可能和笔者的不一致,但是用此命令你就不会因为找不到GTK的头文件和依赖库的烦恼了。

4.一个简单的GTK程序


#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;
}


将此代码保存为main.c文件。

5.一个简单的Makefile:


CC = gcc

CFLAGS = -Wall                 /
    -DG_DISABLE_DEPRECATED          /
    -DGDK_DISABLE_DEPRECATED     /
    -DGDK_PIXBUF_DISABLE_DEPRECATED /
    -DGTK_DISABLE_DEPRECATED

HelloGtk: main.c
    $(CC) main.c -o HelloGtk $(CFLAGS) `pkg-config gtk+-2.0 --cflags --libs`

clean:
    rm -f *.o HelloGtk

将此代码保存为Makefile

6.运行

  在CLI里面执行
  $ make
  $ ./HelloGtk

看到窗口了吗!(此程序必须在X11环境下运行)

转载请保留出处: http://www.usenix.cn/index.php/archives/8

关于作者:

  尹曙光,计算机技术工作者、爱好者,致力于操作系统、编译器和嵌入式的研发,偶尔也玩一玩Java,可以通过 kevdmx@126.com 与他联系。




 

GTK多窗口的创建及窗口之间数据的交互

主要参考了这篇文章:一步一步学GTK+之多窗口,
  • bearing_bear
  • bearing_bear
  • 2014年06月11日 19:44
  • 1799

GTK+浅谈之十三网络编程

一、简介         网络编程是Linux功能的强项,Gtk+2.0结合Linux系统的网络编程编写服务器和客户端。 二、详解 1、简单的ECHO程序        套接字...
  • taiyang1987912
  • taiyang1987912
  • 2015年10月09日 17:54
  • 1612

初识GTK--C语言学习(6)

吐槽好想回家。。。。GTK是啥通俗的说,一个库,用C语言写出图形界面。GTK和普通的C程序有啥区别我想这是新手上来最坑爹的了,因为现有的大部分教程都是给个例子(好长的代码)然后发一个实际的效果,只能通...
  • XiyouLinux_Kangyijie
  • XiyouLinux_Kangyijie
  • 2016年08月05日 23:51
  • 736

GTK入门学习:布局练习之计算器

接下来,我们做一个布局练习,如下图: 我们用表格布局实现,表格布局参考坐标如下: 这里我们用到行编辑控件( GtkEntry )。 行...
  • lianghe_work
  • lianghe_work
  • 2015年07月26日 20:12
  • 1087

GTK学习笔记之Linux下Gtk环境搭建(0)

下面介绍下Ubuntu 环境下具体的安装过程: 1、配置安装gcc/g++/gdb/make 等基本编程工具(必须装好) 刚装好的Ubuntu系统中已经有GCC了,但是这个GCC几乎什...
  • Rekols
  • Rekols
  • 2015年02月17日 04:49
  • 3101

GTK在Linux下的安装

linux gtk 是linux平台下的图形界面开发接口,它不同于qt,它是完全免费的,Qt是基于c++的商业开发包,涉及版权等问题,gtk则是基于c的全免费的,呵呵。    先说gtk的安装 ...
  • u010670794
  • u010670794
  • 2014年10月09日 19:35
  • 5790

Ubuntu下GTK的安装、编译和测试

我利用此方法成功在UBUNTU 10.04下安装GTK 2.20.1。 一、安装   1、安装gcc/g++/gdb/make 等基本编程工具 $sudo apt-get insta...
  • chinajobs
  • chinajobs
  • 2015年08月22日 20:25
  • 546

一个五脏俱全的Gtk小程序

refer from: 本人自从学习Gtk以来,一直没能做一个像模像样的例子,前段时间抽空写了一个小程序,大概800多行,是调用Gtk和GLib库共同编译的,贴到这里和大家分享:   ...
  • samssm
  • samssm
  • 2014年04月21日 17:15
  • 928

gtk多线程编程用例

#include gtk/gtk.h>  static GtkWidget *fixed;  static GtkWidget *button1;  static GtkWidget *butt...
  • qq61394323
  • qq61394323
  • 2014年07月19日 17:09
  • 1341

GTK+浅谈之五等待旋转动画

一、简介         Gtk+2.0包含程序库gdk-pixbuf,主要用来处理图像动画,所有可以直接加载Gif动画;也可以使用定时器动态控制图像的显示内容来实现动画。 二、详解 (1)代...
  • taiyang1987912
  • taiyang1987912
  • 2015年09月14日 18:32
  • 1074
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Hello GTK
举报原因:
原因补充:

(最多只允许输入30个字)