一个构件的剖析@GTK+ 2.0 中文教程连载
2010-12-21 16:21
288 查看
一个构件的剖析
要想创建一个新的构件,最重要的是要对 GTK 对象的工作原理有所了解。这一节只是一个简述,详见参考手册。GTK 构件具有面向对象的特性。然而,它是用标准的 C 实现的。这极大的改善了在当前 C++ 编译器上使用的可移植性和稳定性;但是,这也意味着写构件的人必须注意一些实现的细节。一个构件类的所有实例(比如所有的按钮构件)的共有信息存储在类结构
里,类的信号信息只以该结构存储了一份(充当 C 中的虚函数)。为了支持继承,类结构的第一个域必须是它的父类结构的一个拷贝。GtkButton 的类结构声明如下:
struct _GtkButtonClass { GtkContainerClass parent_class; void (* pressed) (GtkButton *button); void (* released) (GtkButton *button); void (* clicked) (GtkButton *button); void (* enter) (GtkButton *button); void (* leave) (GtkButton *button); }; |
每一个构件也有一个结构,它是创建每个实例的基础。该结构有为每个构件的实例存储不同信息的域。我们把该结构称为对象结构
。如下是按钮类:
struct _GtkButton { GtkContainer container; GtkWidget *child; guint in_button : 1; guint button_down : 1; }; |
<<< Previous | Home | Next >>> |
编写你自己的构件 | Up | 创建一个复合构件 |
相关文章推荐
- 创建一个复合构件@GTK+ 2.0 中文教程连载
- 无文档构件。。。。。。@GTK+ 2.0 中文教程连载
- 涂鸦板,一个简单的绘图程序@GTK+ 2.0 中文教程连载
- 设置构件的属性@GTK+ 2.0 中文教程连载
- 构件概述@GTK+ 2.0 中文教程连载
- 构件的组织@GTK+ 2.0 中文教程连载
- 组装构件@GTK+ 2.0 中文教程连载
- 编写你自己的构件 概述@GTK+ 2.0 中文教程连载
- 从头创建构件@GTK+ 2.0 中文教程连载
- 无窗口构件@GTK+ 2.0 中文教程连载
- 菜单构件/手工创建菜单@GTK+ 2.0 中文教程连载
- 用表组装@GTK+ 2.0 中文教程连载
- 对齐构件 The Alignment widget@GTK+ 2.0 中文教程连载
- 使用套件示例@GTK+ 2.0 中文教程连载 现在我们已经介绍了难的办法,这里介绍怎样用 gtk_item_factory 调用来做。
- 深入的学习@GTK+ 2.0 中文教程连载
- GTK+ 2.0 中文教程连载
- GLib单向链表@GTK+ 2.0 中文教程连载
- 术语表@GTK+ 2.0 中文教程连载
- 中文版说明@GTK+ 2.0 中文教程连载
- 编译 Hello World 程序@GTK+ 2.0 中文教程连载