用Glade和PyGTK快速开发图形应用程序快速入门

你是否苦于在Linux上做图形界面开发,是否羡慕Visual Studio可视化的操作?

其实Linux上也有一个很强大的工具:Glade。(最新的Glade版本是glade3)

让Glade做一下自我介绍:

What is Glade?

Glade is a RAD tool to enable quick & easy development of user interfaces for theGTK+ toolkit and theGNOME desktop environment.

The user interfaces designed in Glade are saved as XML, and by using the GtkBuilder GTK+ object these can be loaded by applications dynamically as needed.

By using GtkBuilder, Glade XML files can be used in numerous programming languages including C, C++, C#, Vala, Java, Perl, Python,and others.

Glade的强大之处在于它生成的是描述界面的XML文件,而不是依赖于任何语言的文件(glade2曾是这样)。所以一个由Glade画出的界面可以使用任何语言实现,只要这个语言支持GTK+。

这是一个非常强大的,令人激动的设计思想!微软的WPF也有类似的功能。

下面举个例子,使用的是PyGTK。PyGTK是GTK的Python实现,Python是我最喜欢的语言。下面是PyGTK的自我介绍:

What is PyGTK?

PyGTK lets you to easily create programs with a graphical user interface using the Python programming language. The underlying GTK+ library provides all kind of visual elements and utilities for it and, if needed, you can develop full featured applications for the GNOME Desktop.

PyGTK applications are truly multiplatform and they're able to run, unmodified, on Linux, Windows, MacOS X and other platforms.

Other distinctive features of PyGTK are, besides its ease of use and rapid prototyping, its first class accesibility support or the capability to deal with complex multilingual or bidirectional text for fully localized applications.

这个例子取自我参加的一个开源项目sunpinyin,这是sun自己的一个输入法,现在已经开源,欢迎你的加入:)  ,你可以在上面的链接中找到源码。项目中我负责用Glade和PyGTK构建配置界面。

1. 用Glade画出界面。

完全可视化的操作,很简单,一用就会,所以不做过多的介绍。生成的是扩展名为 .glade 的XML文件(此例中命名为setup.glade)。下面是一个截图,怎么样,效果不比Windows上差吧 :)




2. 使用Python解析此XML文件。

首先导入必须的模块:

import sys

import pygtk

pygtk.require("2.0")

import gtk

import gtk.glade

接着就是解析XML文件了,快吧,而且解析的方法绝对比你想象的简单,实际上只需要一条指令:

gtk.glade.XML("setup.glade")

接着,运行!你没听错,没错!现在就可以运行了!不过你需要再调用一个函数,否则图形一下就消失了,你会看不到图形:

gtk.main()

现在的程序如下:(import部分不再重复了)

if __name__ = "__main__":

   gtk.glade.XML("setup.glade")

   gtk.main()

就这么简单,是不是很神奇呢!

接着,你需要的就是再为各控件添加逻辑,事件等。比如添加一个关闭窗口的事件,只需要两行代码:

dic = {"on_window_destroy": gtk.main_quit}  # 这是一个字典,意思是对destroy事件调用gtk.main_quit 回调函数。

wTree.signal_autoconnect(dic)    # wTree是刚才解析XML获得的对象

 

 

 

--------------------

 

That's all!

就是这么简单!希望你也会喜欢!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值