GTK+图形化应用程序开发学习笔记
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+图形化应用程序开发学习笔记相关推荐
- GTK+图形化应用程序开发学习笔记(五)—组装盒、组合表、固定容器构件
GTK+图形化应用程序开发学习笔记(五)-组装盒.组合表.固定容器构件 一.组装盒 组装盒(GtkBox)也称为组合构件.使用组装盒可以将多个构件放在一个容器中.容器可以把组装盒看作是一个构件.不像按 ...
- GTK+图形化应用程序开发学习笔记(一)—概述
GTK+图形化应用程序开发学习笔记(一)-概述 一.什么是GNOME. GNOME的意思是"GNU Network Object Model Environment"(GNU网络对 ...
- GTK+图形化应用程序开发学习笔记(三)—窗体
一.初始化GTK+ 写GTK+程序需要调用gtk_init函数对GTK+库函数进行初始化. 1. 名称:: gtk_init 功能: 初始化GTK+库 头文件: #include <gtk/gt ...
- GTK+图形化应用程序开发学习笔记(二)—Glib库
在学习GTK+之前我们需要先学习一下 glib的有关知识.因为我们将会在以后的学习中遇到这些知识.由于本笔记不是专门介绍glib的,所以下面的介绍不会太详细. 一.什么是glib库 ...
- GTK+图形化应用程序开发学习笔记(六)—按钮
一.常用构件函数 最常用的构件是按钮构件.录入字段构件.列表框构件和复合框构件.所有建立按钮的函数返回指向GtkWidget的指针.GtkWidget指针能够调用对构件进行操作的通用函数.函数gtk_ ...
- GTK+图形化应用程序开发学习笔记(七)—标签构件.事件盒构件
一.标签构件 标签构件(GtkLabel)是GTK中最常见的构件,它是静态的不可编辑的字段.在屏幕上,常常用标号说明其他字段.在按钮上设置标签用来说明按钮,或者放在其他字段的旁边对该字段提供说明.它不 ...
- GTK+图形化应用程序开发学习笔记(四)—容器、构件
一.构件 上一章我们介绍了如果创建一个窗体,但应用程序仅有一个窗体是不够的我们必须在窗体上添加一些东西(如:按钮,文本框等).这些东西被称为构件,而我们添加的构件的载体被称为容器(如:主窗体). 构件 ...
- 微信小程序开发学习笔记一
微信小程序学习笔记(一) 环境使用及创建项目 文件目录设置 JS文件 环境使用及创建项目 环境使用:微信开发者工具 一个微信号只能开发一个微信小程序. 在微信小程序开发手册下载最新版本,学习不要bet ...
- 基于有Vue基础的微信小程序开发学习笔记
微信小程序开发 文章目录 微信小程序开发 一.微信小程序介绍 二.小程序结构目录 1.小程序的文件结构 2.基本项目目录 三.配置文件详解 1.全局配置文件 2.页面配置文件 3.sitemap配置 ...
最新文章
- 对云风 cstring 第二次解析
- 源同步方法与注意事项
- MVP遇到GMCT:不加入域更改密码有几种方法?
- B 站的前端崩了,后端的你别慌!
- 20100412 最近在看加密解密
- WP7 初始屏幕设置
- java删除文件中的一行_在Linux中使用java和javac命令编译运行java文件
- c# 将doc转换为docx
- jsf如何与数据库连接_JSF身份验证登录注销数据库示例
- mysql5.5忘记密码重置方法_mysql5.5忘记密码重置方法
- 多屏下dde-dock切换速度太慢
- oracle导数时不包含某个表,EXPDP导数报ORA-00942案例
- LOJ #2155. 「POI2011 R1」同谋者 Conspiracy(深入性质分析)
- 你还在怕忘记网盘密码?商鼎云助记词登录保障你的安全
- 【亿可控】第一天系统分析与设计
- 帆软FineReport本地部署springboot
- 机器深度学习的过程中盛传着7 个误解,我们来一一揭开
- java精选面试题---字节流和字符流的区别
- ANSYS Mechanical产品介绍与功能汇总,速看
- 如何在cmd命令行窗口切换目录
热门文章
- java-通过ip获取地址
- java中servlet filter_lua学习笔记(二)仿java servlet中Filter功能
- java代码套路,开发中比较容易理解的代码套路
- 计算机网络第四章ppt谢希仁,计算机网络课件-谢希仁(第四章).ppt
- Vue2.0 探索之路——生命周期和钩子函数的一些理解
- mac vscode 配置golang
- python杀死线程的方法_python杀死一个线程的方法
- 超赞的贪吃蛇、吃豆人和数字华容道等童年小游戏1行Python代码就能玩
- 今天大佬告诉你Spring Boot 实现通用 Auth 认证的 4 种方式!
- 大佬来告诉你在遇到B站崩了,如何防止类似事故的出现?