什么是Glib和Gobject?

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

内容简介: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


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

查看所有标签

猜你喜欢:

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

Docker开发指南

Docker开发指南

[英] Adrian Mouat / 黄彦邦 / 人民邮电出版社 / 2017-4 / 79.00元

Docker容器轻量和可移植的特性尤其适用于动态和分布式的环境,它的兴起给软件开发流程带来了一场革命。本书对Docker进行了全面讲解,包括开发、生产以至维护的整个软件生命周期,并对其中可能出现的一些问题进行了探讨,如软件版本差异、开发环境与生产环境的差异、系统安全问题,等等。一起来看看 《Docker开发指南》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

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

RGB CMYK 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具