http://blog.chinaunix.net/u/22935/showart_305786.html
一、初始化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);

参数:

返回值:

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

/*base1.c*/

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

}

$ 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函数可以结束程序 ,它通常在回调函数中被调用。下面我们介绍回调函数。

GTK+图形化应用程序开发学习笔记相关推荐

  1. GTK+图形化应用程序开发学习笔记(五)—组装盒、组合表、固定容器构件

    GTK+图形化应用程序开发学习笔记(五)-组装盒.组合表.固定容器构件 一.组装盒 组装盒(GtkBox)也称为组合构件.使用组装盒可以将多个构件放在一个容器中.容器可以把组装盒看作是一个构件.不像按 ...

  2. GTK+图形化应用程序开发学习笔记(一)—概述

    GTK+图形化应用程序开发学习笔记(一)-概述 一.什么是GNOME. GNOME的意思是"GNU Network Object Model Environment"(GNU网络对 ...

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

    一.初始化GTK+ 写GTK+程序需要调用gtk_init函数对GTK+库函数进行初始化. 1. 名称:: gtk_init 功能: 初始化GTK+库 头文件: #include <gtk/gt ...

  4. GTK+图形化应用程序开发学习笔记(二)—Glib库

    在学习GTK+之前我们需要先学习一下 glib的有关知识.因为我们将会在以后的学习中遇到这些知识.由于本笔记不是专门介绍glib的,所以下面的介绍不会太详细.   一.什么是glib库        ...

  5. GTK+图形化应用程序开发学习笔记(六)—按钮

    一.常用构件函数 最常用的构件是按钮构件.录入字段构件.列表框构件和复合框构件.所有建立按钮的函数返回指向GtkWidget的指针.GtkWidget指针能够调用对构件进行操作的通用函数.函数gtk_ ...

  6. GTK+图形化应用程序开发学习笔记(七)—标签构件.事件盒构件

    一.标签构件 标签构件(GtkLabel)是GTK中最常见的构件,它是静态的不可编辑的字段.在屏幕上,常常用标号说明其他字段.在按钮上设置标签用来说明按钮,或者放在其他字段的旁边对该字段提供说明.它不 ...

  7. GTK+图形化应用程序开发学习笔记(四)—容器、构件

    一.构件 上一章我们介绍了如果创建一个窗体,但应用程序仅有一个窗体是不够的我们必须在窗体上添加一些东西(如:按钮,文本框等).这些东西被称为构件,而我们添加的构件的载体被称为容器(如:主窗体). 构件 ...

  8. 微信小程序开发学习笔记一

    微信小程序学习笔记(一) 环境使用及创建项目 文件目录设置 JS文件 环境使用及创建项目 环境使用:微信开发者工具 一个微信号只能开发一个微信小程序. 在微信小程序开发手册下载最新版本,学习不要bet ...

  9. 基于有Vue基础的微信小程序开发学习笔记

    微信小程序开发 文章目录 微信小程序开发 一.微信小程序介绍 二.小程序结构目录 1.小程序的文件结构 2.基本项目目录 三.配置文件详解 1.全局配置文件 2.页面配置文件 3.sitemap配置 ...

最新文章

  1. 对云风 cstring 第二次解析
  2. 源同步方法与注意事项
  3. MVP遇到GMCT:不加入域更改密码有几种方法?
  4. B 站的前端崩了,后端的你别慌!
  5. 20100412 最近在看加密解密
  6. WP7 初始屏幕设置
  7. java删除文件中的一行_在Linux中使用java和javac命令编译运行java文件
  8. c# 将doc转换为docx
  9. jsf如何与数据库连接_JSF身份验证登录注销数据库示例
  10. mysql5.5忘记密码重置方法_mysql5.5忘记密码重置方法
  11. 多屏下dde-dock切换速度太慢
  12. oracle导数时不包含某个表,EXPDP导数报ORA-00942案例
  13. LOJ #2155. 「POI2011 R1」同谋者 Conspiracy(深入性质分析)
  14. 你还在怕忘记网盘密码?商鼎云助记词登录保障你的安全
  15. 【亿可控】第一天系统分析与设计
  16. 帆软FineReport本地部署springboot
  17. 机器深度学习的过程中盛传着7 个误解,我们来一一揭开
  18. java精选面试题---字节流和字符流的区别
  19. ANSYS Mechanical产品介绍与功能汇总,速看
  20. 如何在cmd命令行窗口切换目录

热门文章

  1. java-通过ip获取地址
  2. java中servlet filter_lua学习笔记(二)仿java servlet中Filter功能
  3. java代码套路,开发中比较容易理解的代码套路
  4. 计算机网络第四章ppt谢希仁,计算机网络课件-谢希仁(第四章).ppt
  5. Vue2.0 探索之路——生命周期和钩子函数的一些理解
  6. mac vscode 配置golang
  7. python杀死线程的方法_python杀死一个线程的方法
  8. 超赞的贪吃蛇、吃豆人和数字华容道等童年小游戏1行Python代码就能玩
  9. 今天大佬告诉你Spring Boot 实现通用 Auth 认证的 4 种方式!
  10. 大佬来告诉你在遇到B站崩了,如何防止类似事故的出现?