使用C语言进行面向对象的开发--GObject入门[2]

转自: blog.csdn.net/pingf0 或www.cnblogs.com/pingf


PART 2.

在正式开始GObject的学习之前,还要简单提一下大名鼎鼎的建立在GObject系统之上的桌面图形库Gtk,先来个最简单的程序看看。

#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 0;
}

这段代码的作用其实就是显示一个啥都没有的窗口。

有些刚接触gtk的人觉得gtk的函式名总是很长,其实也是有它的原因的,后面再说。


如果我们将上面代码中的Gtk,gtk,GTK去掉,似乎会简明不少。

其实就是 声明window(窗口),new一个window,显示window三步,当然最后进入一个循环 gtk_main 中。


除了函数名长了些之外,不难发现大小写,下划线的组合还蛮多的,这也是挺麻烦事情。


下面就这些冗长而又麻烦的事情,简单加以说明(就是我个人的理解…….XD),


GTK(不分大小写)其实就是表明了这个函式是gtk库提供的,它表明的是一个域,就像System.out.***之类,前面的一堆写起来也是挺麻烦的一样。


而大小写和下划线的搭配下面举例来说

GtkWindow 用于对象[构件]的声明

GTK_WINDOW 用于对象类型的转换

gtk_window_*** 用于与对象相关的函式的声明


这样的规则不是gtk说了算的,而是GType,GObject决定的,转而言之,一般的基于Glib的库都采用这样的规则,比如进来很流行的2.5D桌面图形库Clutter,里面构件的声明也遵循此规则。

如果想玩下Clutter,但又不懂linux,可以参考下面这篇博文,在win32上搭建Clutter的开发环境。

http://www.cnblogs.com/pingf/archive/2009/10/27/1590419.html


下面简单说下GObject实现的一些面向对象的机制(当然都是模拟的),


类型机制,

继承,

接口,

函式调用(普通,虚,纯虚,当然这需要你自己来理解),

类型转化(静态,动态,基础类型),

类型检测,

属性机制,

信号机制(signal,closure,accumulator…..)

。。。。。。


有很多东西其实平时是用不到滴【其实是目前我还没搞明白】,所以下面的代码集中说明如下一些东西

继承,

接口,

函式调用(普通,虚,纯虚)

函式(普通的,虚的)

信号机制(signal)

类型转化(静态)【动态的简单看了下,有时间的话也会写点……XD】

类型检测

属性机制


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值