按照计划,今天参照这篇文章 Building an Application with PyGTK and Glade 学习。第一次使用menu和toolbar,进一步学习了tree/list view的使用,昨天还不太会用的dialog也学会了。
下载源代码: pygtk-learning-pywine.tgz
昨天遗留的几个问题也解决了:
1. 首先完成了那个dialog。虽然没什么功能,就算是复习一下dialog的实现方法吧。
2. 把ServerInfo程序的treeview内容改成显示http的header了。
- #get http headers, then insert into tree model
- data = page.read()
- headers = page.info()
- for name in headers.keys():
- insert_row(self.treemodel, None, name, headers[name])
3. 把页面内容转换成unicode字符。用到了re模块去取页面meta标记里的字符集设置。
- import re, string
-
- r = re.compile(r""".*content=['|"]?text/html;\s?charset=([a-zA-Z0-9\-]+)['|"]?.*""", re.S | re.I | re.M)
- m = r.match(data)
- if m:
- charset = string.lower(m.group(1))
- if charset != 'utf-8':
- data = data.decode(charset, 'ignore').encode('utf-8', 'ignore')
- else:
- data = data.encode('utf-8', 'ignore')
- self.logwindow.set_text(data)
4. 用TexBuffer的set_text方法替代了insert_at_cursor。
新ServerInfo程序的源代码: pygtk-learning-serverinfo.tgz
今天上午参照 A Beginner’s Guide to Using pyGTK and Glade 这篇文章学习,感觉确实很好用。文章开始部分对比几种GUI开发库写得挺好,虽然是2003年写的。还有后面提到如何结合socket编程,正好要用到。
照着Demo实做了一遍,发现一些用法已经deprecated了:
- gtk.TRUE - 用True就行了
- gtk.mainquit - 换成gtk.main_quit
- gtk.mainloop() - 换成gtk.main()
期间犯了个小错误,忘了在glade里为主窗口添加destroy信号,结果没法关闭窗口后没法退出程序。
显示含有中文的页面内容时会在下面这行代码报错,像是编码问题,先不深究了。
self.logwindow.insert_at_cursor(data, len(data))
自己用为Entry控件加了activate信号,响应回车事件。也准备试试如何显示对话框,还没有完成。
可以在这里下载Demo的源代码: guoyong.org/?dl=pygtk-demo.tgz
接下来计划按照这篇文章 [ www.learningpython.com/2006/05/30/building-an-appl... ]学习,然后准备自己动手写了。
一个显示天空中行星位置的applet,中文页面是我翻译的。
http://www.lightandmatter.com/area2planetzh.html
可以在自己的页面里嵌入这段代码来调用这个applet。
<applet archive="http://www.lightandmatter.com/PlanetFinder.jar"
code="PlanetFinder.class"
width=600 height=400
alt="Sorry, your browser does not support Java.">
<param name="language" value="zh">
<param name="latitude" value="40">
<param name="longitude" value="116">
</applet>
有人把这个applet移植到Symbian平台上,改用Symbian C++ 开发。下面是在我的6600上的截屏。

源代码和sis安装文件的下载地址: www.newlc.com/article.php3?id_article=799

居然找到了这个游戏,让我怀念起大学时在8086的单色显示器上玩这个游戏的情景。。。
Latest Comments
RSS