含有章节索引的 *PUG 文章通用模板 ::-- ehu4ever [2005-09-14 13:59:16]
Contents
1. PyGTK Introduction
会者不难,难者不会
首先,我们要掌握其基本概念和基本使用方法。
安装上pygtk是第一步,这里我说一下windows中是怎样的。我建议下载: http://www.pcpm.ucl.ac.be/~gustin/win32_ports/binaries/pygtk-2.6.2-2.win32-py2.4.exe 和 http://jaist.dl.sourceforge.net/sourceforge/gladewin32/gtk-win32-devel-2.6.10-rc1.exe ,分别安装它们。
安装后在python的console中测试是否安装成功:
>>> import pygtk >>> pygtk.require(“2.0”) >>> import gtk
更为理想的载入方法是下面这种,虽然复杂,但是可迁移。可以把它存为一个module:findgtk.py,要用的时候只要import findgtk就可以了。
1 #!/usr/bin/env python
2 '''
3 findgtk.py - Find the pyGTK libraries, wherever they are.
4 '''
5 import os
6 import sys
7 sys.path.append("/usr/local/lib/python2.3/site-packages/")
8 def try_import():
9 import sys
10 """tries to import gtk and if successful, returns 1"""
11 #print "Attempting to load gtk...Path=%s"%sys.path
12 # To require 2.0
13 try:
14 import pygtk
15 pygtk.require("2.0")
16 except:
17 print "pyGTK not found. You need GTK 2 to run this."
18 print "Did you \"export PYTHONPATH=/usr/local/lib/python2.2/sitepackages/\" first?"
19 print "Perhaps you have GTK2 but not pyGTK, so I will continue to try loading."
20
21 try:
22 import gtk, gtk.glade
23 import atk, pango #for py2exe
24 import gobject
25 except:
26 import traceback, sys
27 traceback.print_exc(file=sys.stdout)
28 print "I??m sorry, you apparently do not have GTK2 installed - I tried"
29 print "to import gtk, gtk.glade, and gobject, and I failed."
30 return 0
31
32 return 1
33 if not try_import():
34 site_packages=0
35 #for k in sys.path:
36 # if k.count("site-packages"):
37 # print "existing site-packages path %s found\n"%k
38 # site_packages=1
39 if site_packages == 0:
40 from stat import *
41 #print "no site-packages path set, checking.\n"
42 check_lib = [ "/usr/lib/python2.2/site-packages/",
43 "/usr/local/lib/python2.2/site-packages/",
44 "/usr/local/lib/python2.3/site-packages/" ]
45 for k in check_lib:
46 try:
47 path=os.path.join(k, "pygtk.py")
48 #print "Path=%s"%path
49 if open(path)!=None:
50 #print "appending", k
51 sys.path=[k]+sys.path
52 if try_import():
53 break
54 except:
55 pass
56
57
58 if not try_import():
59 sys.exit(0)
- 有用的资源:
- pygtk的faq是一个wiki,它内容广泛,更新也很快。有时候,在pygtk的maillist中的提问,它的维护者会在faq中作答。
http://www.async.com.br/faq/pygtk/index.py?req=index
- pygtk的maillist应该常去,pygtk的维护者都在那。
http://www.daa.com.au/mailman/listinfo/pygtk
- 对于初学者还有很多的入门文章: