初次使用GTK

1.GTK简介

Gtk(GIMPtoolkit)+使用C语言开发的,采用了面向对象的技术,跨平台的图形工具包,LGPL,Gtk+提供所有流行的语言的接口:C++,Perl,Python,Java,ObjectiveC,Gnome选中,优势:1.现代,开发和维护积极2.提供了广泛的选项,可以将工作扩展到尽可能多的人,3.简单易用4.自由软件,自由的开放源码许可。5.设计良好,灵活而可扩展。

GTK+的组成:GDK,gdk-pixbuf,GlibPango

GTK+使用GlibGDK(GIMPDrawingkit)系列开发库,Glib定义了数据类型,提供错误处理和内存管理方面的函数;GDK是本地图形化APIGTK+之间的一个过渡层。

1)GDKgdk-pixbuf,GIMP的开发基础,GTK+建立在GDKgdk-pixbuf.GDK是对访问窗口的底层函数(X系统中Xlib)的封装,gdk-pixbuf-用户客户端图像处理的库。GTK+面向对象的应用程序接口。

2)Glib:包括一些和图形无关的常规功能,数据结构之类的,基本功能+GObject对象系统=Glib,用来开发不需要图形界面的程序,

3)Pango:Gtk使用Pango库来处理国际化文字输出

2.GTK安装

备注:本人机器配置Ubuntu 12.04 &  联想Z460A

sudo apt-get install build-essential       #这将安装gcc/g++/gdb/make 等基本编程工具
sudo apt-get install gnome-core-devel #这将安装 libgtk2.0-dev libglib2.0-dev 等开发相关的库文件
sudo apt-get install pkg-config            #用于在编译GTK程序时自动找出头文件及库文件位置
sudo apt-get install devhelp                 #这将安装 devhelp GTK文档查看程序
sudo apt-get install libglib2.0-doc libgtk2.0-doc     #这将安装 gtk/glib 的API参考手册及其它帮助文档
sudo apt-get instal glade libglade2-dev    #这将安装基于GTK的界面构造程序

备注:也些软件包可能不需要安装,需要具体问题具体分析

3.简单测试程序

万恶的Helloworld之 GTK+版Helloworld。《Dreaming in Code》介绍说:”Hello world 程序一无所用,但是足以蛊惑人心;它鼓励新手,唤起了每个程序员心中乐观的一面。既然能让它(代指计算机)说话,就能让它做任何事!

/*Program: helloworld.c -- Test gtk+ 
 *commandline:gcc helloworld.c -o helloworld `pkg-config --cflags --libs gtk+-2.0`
 */
#include<gtk/gtk.h>  
void hello(GtkWidget *widget,gpointer data) {   
    g_print("Hello Ubuntu!\n"); 
}  
gint delete_event(GtkWidget *widget,GdkEvent *event,gpointer data) {   
    g_print ("delete event occurred\n");  
    return(TRUE); 
    }  
void destroy(GtkWidget *widget,gpointer data) {   
    gtk_main_quit(); 
}  
int main( int argc, char *argv[] ) {   
    GtkWidget *window;  
    GtkWidget *button;  
    gtk_init (&argc, &argv);  
    window=gtk_window_new (GTK_WINDOW_TOPLEVEL);  
    gtk_signal_connect(GTK_OBJECT(window),"delete_event",GTK_SIGNAL_FUNC(delete_event),NULL);   
    gtk_signal_connect(GTK_OBJECT (window), "destroy",GTK_SIGNAL_FUNC (destroy), NULL);   
    gtk_container_set_border_width(GTK_CONTAINER (window), 10);  
    button = gtk_button_new_with_label("Hello Ubuntu!");   
    gtk_signal_connect(GTK_OBJECT (button), "clicked",GTK_SIGNAL_FUNC (hello), NULL);  
    gtk_signal_connect_object(GTK_OBJECT (button), "clicked",GTK_SIGNAL_FUNC (gtk_widget_destroy),GTK_OBJECT (window));   
    gtk_container_add(GTK_CONTAINER (window), button);  
    gtk_widget_show(button);  
    gtk_widget_show(window);   /*显示一个窗口*/  
    gtk_main();   /*进入主循环*/  
    return(0); 
}
编译命令:

gcc helloworld.c -o helloworld `pkg-config --cflags --libs gtk+-2.0`

嫌麻烦的话,可以把命令写到一个shell文件中,省得每次都要在命令行里敲。这里我写了一个shell文件:

#!/bin/bash
build_argument=$(pkg-config --cflags --libs gtk+-2.0)
cc -o helloworld helloworld.c ${build_argument}
运行截图:


单击Hello Ubuntu!后窗口会被关闭并在终端中输出: Hello Ubuntu!

至此,是不是有种收获感,有种要让计算机做任何事的冲动。哈哈,这就是神奇的helloworld。

参考资料

[1] GTK安装步骤:http://www.cnblogs.com/zhangzhi/archive/2009/09/22/1572120.html

[2] GTK与QT安装和配置: http://wiki.ubuntu.com.cn/Gtk%E4%B8%8EQt%E7%BC%96%E8%AF%91%E7%8E%AF%E5%A2%83%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE


你可能感兴趣的:(ubuntu,gtk+)