GTK编程初谈

  GTK编程初谈 

    GTK是一个跨平台的GUI开发库, 它是用C语言以OO的方式(俗称面向对象C, 又称OO-C)开发的. 只要是有一定C语言和GUI开发基础, 用GTK是一件很简单的事.
1. 安装与配置:
由于我使用的是Ubuntu Linux, 重点只介绍Ubuntu下的GTK开发库安装方法:
sudo apt-get install vim-full                 ;我是vi的忠实用户, 当然你也可以选择emacs或者其他编辑器
sudo apt-get install build-essential       ;安装编译环境, 包括gcc/gdb/make等工具
sudo apt-get install gnome-core-devel  ;安装gtk和glib的开发库
sudo apt-get install pkg-config             ;这是个flag和lib查找工具, 会在编译时自动找到头文件和库的位置
sudo apt-get install dev-help                ;安装文档查看工具dev-help
sudo apt-get install libglib2.0-doc libgtk2.0-doc ;安装gtk和glib的开发文档

2. 实例:
#include  < gtk / gtk.h >

int  main( int  argc,  char   * argv[])
{
    
/*  A window and a button  */
    GtkWidget 
* win,  * btn;

    
/*  Initialize GTK  */
    gtk_init(
& argc,  & argv);

    
/*  New a window and a button  */
    win 
=  gtk_window_new(GTK_WINDOW_TOPLEVEL);
    btn 
=  gtk_button_new_with_label( " Close yourself " );
    
    
/*  Add button to window container  */
    gtk_container_add(GTK_CONTAINER(win), btn);

    
/*  Connect "close" and button to quit op  */
    g_signal_connect(win, 
" destroy " , G_CALLBACK(gtk_main_quit), NULL);
    g_signal_connect(btn, 
" clicked " , G_CALLBACK(gtk_main_quit), NULL);

    
/*  Show all in the window  */
    gtk_widget_show_all(win);

    
/*  Main loop, wait for signals  */
    gtk_main();

    
return   0 ;
}
上面的程序为main.c, 它所完成的功能就是创建一个窗口(window), 在窗口中添加一个按钮(button), 点击这个button或者是窗口的关闭按钮, 就会实现窗口的关闭, 并使程序结束.
这几行代码很简单, 主要有几个关键:
  • GtkWidget: 创建一个窗口和一个按钮. GTK中的控件都要用GtkWidget类型创建.
  • gtk_init(): 对程序用命令行参数进行初始化.
  • gtk_xxx_new(): 新建xxx类型的控件
  • gtk_container_add(): 把控件添加到container容器中, 在这里是把按钮添加到窗口中.
  • g_signal_connect(): 把GTK控件对应的操作信号, 连接到CALLBACK函数上.
  • gtk_widget_show_all(): 显示窗口.
  • gtk_main(): 开始main loop, 等待信号触发事件.

3. 编译:
我用一个makefile来展示编译命令.




# Target, compiler and objects.
EXEC   = test
CC     = gcc
OBJ    = main.o

# Use for compile.
CFLAGS = `pkg-config --cflags gtk+-2.0`
# Use for link.
CLIBS  = `pkg-config --libs gtk+-2.0`

$(EXEC): $(OBJ)
    $(CC) -o $@ $^ $(CLIBS)

main.o: main.c
    $(CC) -c $< $(CFLAGS)

clean:
    rm $(EXEC) *.o





这里于普通的makefile不同的地方是CFLAGS和CLIBS两个变量, 分别用于编译和链接.
用`......`引用pkg-config实现参数的flags.
在编译时只需要在终端下执行make命令, 就会在目录下生成test可执行的elf文件.

4. 总结:
    GTK编程就像上面举的例子一样, 很简单. 具体的函数使用方法请参见dev-help中的gtk+帮助文档.
阅读更多
上一篇Starting off in Glade/GTK+
下一篇Amiga 25年风雨路
想对作者说点什么? 我来说一句

GNOME GTK+ 编程宝典.pdf

2012年11月19日 26.42MB 下载

linux gtk 编程

2009年02月18日 395KB 下载

GTK编程设计音乐播放器

2011年07月11日 677KB 下载

编程高手谈编程

2007年07月21日 33KB 下载

plc编程及应用 第二版 廖常初

2010年03月20日 10.9MB 下载

PLC编程及应用 (第三版)廖常初

2017年05月16日 21.75MB 下载

深入浅出谈CUDA.

2013年03月13日 8.4MB 下载

S7-200 PLC编程及应用 第3版 廖常初

2013年10月21日 15.68MB 下载

没有更多推荐了,返回首页

关闭
关闭