阳光烂灿的日子

--记录所有碎碎念

Libglade for Python 入门

| Comments

Libglade 是一个使用 Glade 生成代码的替代手段. 使用 Glade 设计 用户界面时, 使用一个叫 XXX.glade 的 XML 文件来描述界面中的各控件及其 属性, 并且可以直接生成相应的 c/c++ 的 GTK 代码. 和从 XML 界面描述 中生成代码不一样的是, libgalde 在运行时装载和分析 XML 界面描述文件. 它也提供了许多函数, 用于设置界面中各控件的信号处理函数.

通过这种方式, 使得你的程序代码从界面代码中分离出来.

上面文字引自gnome-cn的libglade编程介绍。关于libglade的介 绍请阅读上面站点的内容。下面是一个用python语言调用libglade的演示代码。

#!/usr/bin/env python
#testing libglade for python
#filename: libpygtk.py
#author lerosua

import pygtk
pygtk.require(“2.0”)

import gtk
import gtk.glade

class testglade:
def delete_event(self,widget,event,data=None):
return gtk.FALSE
def destroy(self,widget,data=None):
gtk.main_quit()
def __init__(self):
self.xml=gtk.glade.XML(‘libpygtk.glade’)
self.mainwindow=self.xml.get_widget(‘mainWindow’)
self.mainwindow.connect(“delete_event”,self.delete_event)
self.mainwindow.connect(‘destroy’,self.destroy)

def main(self):
gtk.main()

if __name__ == “__main__”:
window=testglade()
window.main()

代码很简单。新建一个testglade类。一开始是定义了两个回调函数。在构造方法中,testglade类从libpygtk.glade文件中得到xml数据。然后从xml中得到主窗体构件(mainWindow)。其它窗体构件也可以用这种方法得到。信号连接,调用的是构件的connect方法。main()方法则是进入gtk事件循环。

if语句处是程序入口。定义一个类的实例,进入gtk事件循环。窗体显示。

现在,用glade画一个窗体吧,主窗体的名字用mainWindow,保存的文件名叫libpygtk.glade.并放到与上面代码相同目录下。 OK,运行上面的python代码吧!

python libpygtk.py

程序界面出来了吧!比C语言版本简单吧。呵呵!如果想深入学习可以参考一下相关源代码。Blogtk是用libglade和python写,不错的参考对象。本文就是参考它写的。

Comments