GTK+图形化应用程序开发学习笔记(三)—窗体(1)

 

一、初始化GTK+

       GTK+程序需要调用gtk_init函数对GTK+ 库函数进行初始化。

1

名称:

gtk_init

功能

初始化GTK+

头文件

#include <gtk/gtk.h>

函数原形

void gtk_init(int *argc,char ***argv);

参数

argc    指向主函数argc的指针

argv    指向主函数argv的指针

返回值

      

 

 

 

 

 

 

 

 

 

在你程序使用到GTK+工具库之前,必须对它进行初始化。gtk_init可以初始化GTK+工具库。gtk_init的参数的指向主函数argc,argv的指针,它可以改变一些不满足GTK+函数要求的命令行参数。

       因为gtk_init函数没有返回值,所以如果在初始化过程中发生错误程序就会立即退出。

                                                  

2

名称:

gtk_init_check

功能

初始化GTK+

头文件

#include <gtk/gtk.h>

函数原形

gboolean gtk_init_check(int *argc,char ***argv);

参数

argc    指向主函数argc的指针

argv    指向主函数argv的指针

返回值

成功返回TURE,出错返回FALSE

      

 

 

 

 

 

 

 

 

 

 还有一个GTK+库初始化函数gtk_init_check,它的作用和gtk_init完全相同。唯一的区别是gtk_init_check有返回值,可以判断初始化是否成功。

 

二、建立窗口

       GTK+的构件是GUI的组成部分。窗口、检查框、按钮和编辑字段都属于构件。通常将构件和窗口定义为指向GtkWidget结构的指针。在GTK+中,GtkWidget是用于所有构件和窗口的通用数据类型。

       GTK+ 库进行初始化后,大多数应用建立一个主窗口。在GTK+中,主窗口常常被称为顶层窗口。顶层窗口不被包含在任何其他窗口内,所以它没有上层窗口。在GTK+ 中,构件具有父子关系,其中父构件是容器,而子构件则是包含在容器中的构件。顶层窗口没有父窗口,但可能 成为其他构件的容器。

       GTK+中建立构件分两步:建立构件,然后使它可以看得见。gtk_window_new函数负责建立窗口。gtk_widget_show函数负责使它成为可见。

      

2.

名称:

gtk_window_new

功能

建立窗口

头文件

#include <gtk/gtk.h>

函数原形

GtkWidget * gtk_window_new(

参数

 

返回值

 

 

 

 

 

 

 

 

 

3.

名称:

gtk_widget_show

功能

显示窗口

头文件

#include <gtk/gtk.h>

函数原形

gtk_widget_show( GtkWidget *window)

参数

 

返回值

 

 

 

 

 

 

 

 

 

 

三、GTK+的事件循环

       GTK+进行初始化并将窗口和构件置于屏幕以后,程序就调用get_main函数等待某种事件的执行。

 

4.

名称:

gtk_main

功能

等待事件的发生

头文件

#include <gtk/gtk.h>

函数原形

void gtk_main(void);

参数

返回值

 

    

 

 

 

 

 

 

   我们在来看看第一章的程序。也许大家就会理解上面函数的作用了。

 

 

 

  1. /*base1.c*/
  2. #include <gtk/gtk.h>
  3.                                                                                                                                              
  4. int main(int argc, char* argv[])
  5. {
  6. GtkWidget *window;
  7.     gtk_init(&argc,&argv);
  8.     window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  9.     gtk_widget_show(window);
  10.     gtk_main();
  11.     return FALSE;
  12. }

$ gcc -o base1 base1.c 'pkg-config --cflags --libs gtk+-2.0'

       $./base1

 

 

程序开始定义了一个窗体,然后用函数gtk_init初始化GTK+库。用函数gtk_window_new创建一个窗体,用get_widget_show显示该窗体。程序最后调用gtk_main()进入主循环,等待各种事件的发生.

       注意该程序不能正常退出,原因是程序没有回呼函数。关于回呼函数我们将会在下面介绍。

 

 

四、结束应用程序

5.

名称:

gtk_main_quit

功能

结束应用程序

头文件

#include <gtk/gtk.h>

函数原形

void gtk_main_quit(void);

参数

返回值

      

 

 

 

 

 

 

 

 

gtk_main_quit函数可以结束程序 ,它通常在回调函数中被调用。下面我们介绍回调函数。

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值