GTK安装

上面是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();

posted @ 2014-10-13 22:45  Delmory  阅读(1115)  评论(0编辑  收藏  举报