什么是Glib和Gobject?

栏目: C++ · 发布时间: 7年前

内容简介:http://stackoverflow.com/questions/11301074/what-exactly-is-glib-and-gobject
我一直在研究 python-mpdor

的源代码,它提到它是

gobject-based, for easy event handling (in the high-level client  class).

所以,有人可以用简单的方式向我解释什么是Glib和GObject,它们如何相互交互以及它在事件处理中的作用.

我试着看着Glib和GObject,但是我没有找到任何基本的解释.我发现的所有解释都是非常技术性的技术,我的意思是不适合初学者.

另外,有人可以指出一些关于Glib和GObject的初学者教程/文章.

GLib和Gobject是两个独立的C库,其中构建了GTK GUI工具包(除其他外).

由于C是较低级别的语言,所以GLib提供了很多基本功能,如类似于 Python 内置的工具(文件输入/输出,字符串操作,内存管理,线程等).

由于C不是面向对象的语言,所以GObject提供了一个基于C的对象系统,它包括属性和继承(再次,已经内置到Python中).在Python中,您很少直接使用GLib(因为Python具有内置的大部分功能),而GObject依赖于GLib.

所有基于GObject的库旨在支持与其他语言(如Python)的语言绑定.

对于您的问题,GObject提供了一个称为“信号”的事件系统.从GObject派生的任何对象都可以“发出”信号来发送事件的通知. python-mpdor中的MPDProtocolClient类派生自GObject,因此可以发出信号.应用程序“连接”功能到这些信号. F

例如,README显示了这个例子:

import gobject
import mpdor

def notify(client, vol):
    print "mpd volume is at ", vol + "%"

client = mpdor.client.Client()
client.connect("mixer-change", notify)
gobject.MainLoop().run()

在这种情况下,名为notify的功能与“mixer-change”信号“连接”,这意味着在客户端“发出”该信号时将会调用该功能. gobject.MainLoop().run()调用进入“ main event loop ”(基本上是一个无限循环),这是事件驱动编程中的一个标准概念.

您可能不会找到很多GObject / Python教程,但是,如果您学习了一些Python / GTK基础知识,那么您可能会了解事件循环,信号和信号回调的概念. (看起来像python-mpdor是使用GTK 2,这将是PyGTK,而不是新的GTK 3,这是PyGObject).

祝你好运.

http://stackoverflow.com/questions/11301074/what-exactly-is-glib-and-gobject


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

SNS网站构建

SNS网站构建

Gavin Bell / 张卫星、李占波、徐静 / 机械工业出版社 / 2011-2 / 69.00元

过去的十年里,Web成为了非常重要的社交工具。社会活动已经超出了BBS这个概念,而指范围更广的互联网。大多数人对Facebook、MySpace以及Twitter并不陌生,事实上,现在很多人在网络上都有个人档案。社会媒体已经成为我们生活的一部分,它可以让我们的生活更加美 好,也可以使其更糟糕,像公民新闻这样的表达已变得很常见。仅仅Facebook就有两亿注册用户。那么在这个新领域中到底有什么奥秘呢......一起来看看 《SNS网站构建》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具