Gobject
文章平均质量分 79
lp525110627
这个作者很懒,什么都没留下…
展开
-
GTK的非实例化类型-interface
本节将介绍接口背后的理论。 如何定义和实现接口详见 How to define and implement interfaces章节。GType的接口非常类似于Java的接口。 它们允许设计一个通用接口,几个类将遵循这个接口。想象一下,高保真设备上的播放,暂停和停止按钮 - 可以看作播放界面。一旦你知道他们做了什么,你可以控制你的CD播放器,MP3播放器或任何使用这些符号的东西。要声明一个翻译 2017-05-02 15:59:52 · 408 阅读 · 0 评论 -
GObject消息系统之Closures
1、闭包闭合是异步信号传输概念的核心,它广泛应用于GTK+和GNOME应用。闭包是抽象概念,是回调的一般表示形式。 它是一个小结构,包含三个对象:(1)一个函数指针(回调本身),其原型如下:return_type function_callback(...,gpointer user_data);(2)在调用闭包时传递给回调的user_data指针(3)一个表示闭包的析构函数的翻译 2017-05-08 15:59:38 · 704 阅读 · 0 评论 -
GObject接口定义的先决条件和属性
1、GObject接口定义的先决条件如果要指定接口在实现时需要其他接口的存在,GObject引入了先决条件的概念:可以将一系列先决条件类型与接口相关联。 例如,如果对象A希望实现接口I1,并且如果接口I1有一个先决条件是需要存在接口I2,则A必须实现I1和I2。上述机制在实践中非常类似于Java接口I1扩展接口I2:/* Make the ViewerEditableLossy翻译 2017-05-18 16:57:18 · 387 阅读 · 0 评论 -
GObject接口定义和实现
一、接口定义GObject接口如何工作的理论在“非实例化类类型:接口”一节中给出。 本节介绍如何定义和实现一个接口。第一步是取一个正确的名称。 该接口定义了两种方法:/* * Copyright/Licensing information. */#ifndef __VIEWER_EDITABLE_H__#define __VIEWER_EDITABLE_H__#inc翻译 2017-05-02 16:07:51 · 1872 阅读 · 0 评论 -
GObject基类
GObject基类前一章讨论了GLib动态类型系统的细节。GObject库还包含一个名为GObject的基本类型的实现。GObject是一个基本的类实例化类型。 它实现:(1)内存管理引用计数(2)实例的构造/析构(3)具有set/get函数对的通用每个对象属性(4)轻松使用信号所有使用GLib类型系统的GNOME库(如GTK +和GStreamer)都继承自GObje翻译 2017-05-15 10:05:30 · 4181 阅读 · 0 评论 -
GObject消息系统之Signals
GObject的信号与标准UNIX信号无关:它们将任意特定于应用程序的事件与任意数量的监听者连接起来。 例如,在GTK +中,从窗口系统接收到每个用户事件(按键或鼠标移动),并在窗口小部件对象实例上以信号发射的形式生成GTK+事件。每个信号在类型系统中与其可以发射的类型一起注册:当用户注册的信号发射时指定的实例类型的闭合被调用。用户还可以自己发射信号,或者从连接到信号的闭合件之一内停止翻译 2017-05-08 16:01:30 · 1131 阅读 · 0 评论 -
Gobject之signal
GObject 信号(Gignal)主要用于特定事件与响应者之间的连接,它与操作系统级中的信号没有什么关系。一般在class_init时,由g_signal_new生成一个新信号句柄并绑定回调函数,也可以使用g_signal_connect连接对象和处理方式(回调函数),由g_signal_emit发出信号触发。guintg_signal_new (const gcha原创 2017-04-21 14:01:47 · 4058 阅读 · 0 评论 -
如何定义和实现新的GObject之对象方法
Gobject的对象方法有如下几种:(1)非虚拟公共方法(2)虚拟公共方法(3)虚拟私有方法1、非虚拟公共方法这个是最简单的,提供了一种作用于对象的简单方法。 在头文件中提供函数原型,并在源文件中提供该原型的实现。/* declaration in the header. */void viewer_file_open (ViewerFile *翻译 2017-05-12 16:56:55 · 392 阅读 · 0 评论 -
如何定义和实现新的GObject之对象构造和析构
1、对象构造在尝试构建自己的GObjects时人们常常会感到困惑,因为它们有很多不同的方法来实现对象的构造过程:很难确定哪个是正确的方法。表4中,“g_object_new”显示了在对象实例化过程中调用的用户提供的函数以及它们被调用的顺序。instance_init函数相当于C++中的构造函数。在所有父节点的instance_init函数都被调用后子类的instance_init都将被调用翻译 2017-05-12 16:44:04 · 1117 阅读 · 0 评论 -
如何定义和实现新的GObject之代码实现
本章重点介绍了GObject子类的实现,例如创建自定义继承类,或者实现GTK +窗口类的子类。在整个章节中,使用文件查看器程序的作为示例,其具有用于表示单个文件查看的ViewerFile类,以及具有特殊功能的不同类型的文件(例如音频文件)的各种派生类。 示例应用程序还支持通过使用ViewerEditable接口编辑文件(例如,调整正在查看的照片)。1、头文件实现编写GObject代翻译 2017-05-12 15:51:21 · 907 阅读 · 0 评论 -
Interface编程实现
Gobject是单根继承的对象系统,但是通过interface也可以实现多继承。interface类似于C++中的抽象类,不能实例化但可以用来继承,类似U盘和移动硬盘,虽然本质上有所区别,但是它们的接口都是USB接口。并且只要它们插到计算机上,主机不关心那个东西是U盘还是移动硬盘,它只需要知道对方是个USB设备就可以了。这样,我们不需要在计算机主机中单独为U盘创造一种U盘接口,也不需要单独为移动硬原创 2017-05-23 15:28:29 · 897 阅读 · 0 评论 -
Gobject编程实现
GObject 是一个程序库,它可以帮助我们使用 C 语言编写面向对象程序。Gobject实现有一套固有的格式,可以理解为C++语言的语法一样,如果要使用Gobject就必须按格式实现。Base.h的实现如下:#ifndef _BASE_H_#define _BASE_H_//#include #include #include typedef struct原创 2017-04-20 14:46:18 · 816 阅读 · 0 评论 -
GSettings简介和使用
1、Gsetting介绍GSettings类为应用程序设置存储和检索提供了方便的API。读取和写入可以被认为是非阻塞的。使用GSettings读取设置通常非常快:在大致相同的数量级(但慢于)GHashTable查找。写入设置方面也非常快,但对于其他线程和其他进程来说,写入设置可能非常昂贵。许多设置后端(包括dconf)都有延迟初始化,这意味着在用户使用计算机的常见情况下,无需修改任何设置即原创 2017-06-03 10:45:47 · 5183 阅读 · 1 评论