2007年6月28日星期四

All the references about Glade and PyGTK.

Here is a reference collection of tutorials and articles about Glade and PyGTK. Enjoy the power of knowledge!

Graphical Interface Development with Glade2

http://www.kplug.org/glade_tutorial/glade2_tutorial/glade2_introduction.html

A series tutorials by Ishan Chattopadhyaya

http://wingtk.sourceforge.net/ishan/starting.html

Main site: GTK+, Glade, LibGlade etc. for Windows

http://wingtk.sourceforge.net/

Embedding Python in Your C Programs | Linux Journal

Embedding Python in Your C Programs | Linux Journal

Why Python? | Linux Journal

Why Python? | Linux Journal

Python 编程及GUI设计工具集 1.0版发布

喜爱Python编程的朋友们,你们是否为奔走于各各网站和私人FTP寻找文件苦恼过?希望小弟制作的的工具集能够为你的Python开发助一臂之力。

工具集内容(Windows版):

python 2.5.1

pygtk all-in-one package

glade3-3.2.2

注:文件来源于各主题网站,皆为自由软件。

工具集下载地址:

http://files-upload.com/329814/PythonGUI.rar.html

本工具集会随各软件更新而定期更新,请关注我的blog。

Libglade 参考手册 — GNOME 中国

Libglade 参考手册 — GNOME 中国

Glade vs libglade.

Glade 和 libglade 之简的关系和使用建议。

Glade

是一个图形界面的构建 GTK+/GNOME 程序界面的程序,她是所见即所得的,同 M$ 的 visual studio 中的界面设计工具类似。使用它你可以获得一个描述你界面的名为 xxx.glade 的 xml 文件,你也可以用它直接生成构建程序界面的 c/c++ 代码。

libglade

是一个用于 GTK+/GNOME 程序中的,从 xxx.glade 文件自动生成程序界面或界面中的一部分的库。 Glade 设计初衷就是要把 GTK+/GNOME 程序的界面描述从源代码里分离出来,即使用 xxx.glade 文件来描述界面,而不是把生成界面的 c 代码写再源代码中,额外的好处就是使得后期修改程序界面非常容易,你只需要使用 Glade 来调整界面即可(实际是仅仅修改了 xxx.glade 文件,无需对源程序做改动)。另外,使用 .glade 文件来生程序界面并不会影响到你的程序的效率,因为你只需要一次装入所有界面,然后在需要时直接使用。

因此,正确的使用 Glade 的方法是:采用 Glade 来生成你的程序界面的 .glade 文件,然后在你的源码中使用 libglade 提供的接口函数来生成你的界面,或界面中一部分。

技巧1

也许你并不需要使用 libglade 来生成你的整个程序界面,libglade 允许你这么做,你只需要在装载 .glade 时指定你需要的控件名即可。

技巧2

当你只需要 .glade 中的某一部分控件,而又想一次载入整个 .glade 文件时,你需要在使用 Glade 设计界面时把整个窗口设置为不可见,以免自动生成的界面显示出来,然后逐个的获取你需要的部分(glade_xml_get_widget(...))。

技巧3

通常你的应用程序里都需要一个或者更多交互式的对话框,比如首选项对话框,这时使用 .glade 来构建这些对话框就显得格外方便,按照技巧1,2 的方法就可方便的实现。

技巧4

对于需要额外控制的控件(比如实时改变其属性等),你应该给他取一个能顾名思义的名字,然后在你的源代码中定义成宏,在需要应用它时,再根据这些宏来获取控件; 或者,在装载 .glade 文件后,把所有这类控件查询出来,以后直接引用,一劳永逸。


原文出处

http://www.gnome-cn.org/documents/tutorial/glade-advance-tutorial/glade-vs-libglade

2007年6月26日星期二

如何使你的UltraEdit支持Python语法高亮

将以下文本加入到Ultraedit安装目录下的 wordfile.txt文件中,注意开头的“/L12”不能和你原有的语言重复:

/L12"Python" Line Comment = # Escape Char = \ File Extensions = PY PYW
/Indent Strings = ":"
/Function String 1 = "%[ ,^t]++def[ ]+^([a-zA-Z0-9_]+*^):"
/Function String 2 = "%[ ,^t]++^(class[ ]+[a-zA-Z0-9_]+*^):"
/Delimiters = []{}()<>="'.,:+@
/C1"Reserved Words"
and as assert
break
class continue
def del
elif else except exec
finally for from
global
if import in is
lambda
not
or object
pass print
raise range return
try
while
yield
/C2"Built-in Functions"
__import__
abs apply
basestring bool buffer
callable chr classmethod cmp coerce compile complex
delattr dict dir divmod
enumerate eval execfile
Ellipsis
file filter float frozenset
False
getattr globals group
hasattr hash help hex
id input int intern isinstance issubclass iter
joinfields
len list local long
map match max min
None NotImplemented
oct open ord
pow property
raw_input reduce reload repr round
search set setattr slice sorted str splitfields
tuple type
True
unichr unicode
vars
xrange
zip
/C3"__Methods__"
__abs__ __add__ __and__
__call__ __cmp__ __coerce__ __contains__
__del__ __delattr__ __delitem__ __delslice__ __div__ __divmod__
__eq__
__float__ __floordiv__
__ge__ __getattribute__ __getitem__ __getnewargs__ __getslice__ __gt__
__hash__ __hex__
__iadd__ __iand__ __idiv__ __ilshift__ __imod__ __imul__ __init__ __int__ __invert__ __ior__ __ipow__ __irshift__ __isub__ __iter__ __ixor__
__le__ __len__ __long__ __lshift__ __lt__
__mod__ __mul__
__ne__ __neg__ __nonzero__
__oct__ __or__
__pos__ __pow__
__radd__ __rand__ __rdiv__ __rdivmod__ __reduce__ __reduce_ex__ __repr__ __reserved__ __rfloordiv__ __rlshift__ __rmod__ __rmul__ __ror__ __rpow__ __rlshift__ __rrshift__ __rshift__ __rsub__ __rtruediv__ __rxor__
__setattr__ __setitem__ __setslice__ __str__ __sub__
__xor__
add append
capitalize center clear close conjugate copy count
decode difference discard
Decimal
encode endswith expandtabs extend
find flush fileno fromkeys
get getcontext
has_key
index insert intersection intersection_update isalnum isalpha isatty isdigit islower isspace issubset issuperset istitle isupper items iteritems iterkeys itervalues
join
keys
ljust lower lstrip
next
pop popitem
read readline readlines remove replace reverse rfind rindex rjust rsplit rstrip
seek setdefault sort split splitlines startswith strip swapcase symmetric_difference symmetric_difference_update
tell title translate truncate
union update upper
values
write writelines
zfill
/C4"__Attributes__"
__author__
__bases__
__class__
__dict__ __doc__
__email__
__methods__ __members__
__name__
__slots__
__version__
/C5"Exceptions"
ArithmeticError AssertionError AttributeError
DeprecationWarning
EnvironmentError EOFError Exception
FloatingPointError FutureWarning
ImportError IndentationError IndexError IOError
KeyboardInterrupt KeyError
LookupError
MemoryError
NameError NotImplementedError
OSError OverflowWarning OverflowError
PendingDeprecationWarning
ReferenceError RuntimeError RuntimeWarning
StandardError StopIteration SyntaxError SyntaxWarning SystemError SystemExit
TabError TypeError
UnboundLocalError UnicodeError UnicodeDecodeError UnicodeEncodeError UnicodeTranslateError UserWarning
ValueError
Warning WindowsError
ZeroDivisionError
/C6"Operators"
+=
-=
%=
/=
**=
&=
|=
^=
>>=
<<=
/C7"Common Libs"
__builtin__
__future__
__main__
aepack aetools aetypes aifc al anydbm applesingle atexit array asyncore asynchat audioop autoGIL
AL AST
base64 binascii binhex bisect bsddb buildtools bz2
BaseHTTPServer Bastion
calendar cd cfmfile cgi cgitb chunk cmath cmd code codecs codeop collections colorsys commands compileall cookielib copy_reg cPickle cStringIO csv curses
Carbon CGIHTTPServer ColorPicker Complex ConfigParser Cookie
datetime dbhash decimal difflib dircache dircmp dis distutils dl doctest dospath dumbdbm dummy_thread dummy_threading
DEVICE DocXMLRPCServer
emacs email encodings errno exceptions
EasyDialogs
fcntl filecmp fileinput findertools fl flp fm fmt fnmatch formatter fpectl fpformat ftplib
FL FrameWork
gc gdbm gensuitemodule getopt getpass gettext gl glob gopherlib grep gzip
GL
heapq hmac hotshot htmlentitydefs htmllib httplib
HTMLParser
ic icopen ihooks imaplib imageop imghdr imp imputil inspect itertools
jpeg
keyword
linecache locale lockfile logging
mac macerrors macfs macostools macpath macresource macurl2path mailbox mailcap marshal md5 mhlib mimetools mimetypes mimify mmap multifile mutex math
MacOS MimeWriter MiniAEFrame
netrc new newdir ni nis nntplib nsremote ntpath nturl2path
operator optparse os ossaudiodev
parser pdb pgdb pickle pickletools pipes pkgutil platform poly popen2 poplib posixfile posixpath pprint profile pstats py_compile pyclbr pydoc pyexpat pythonprefs
Para PixMapWrapper
quietconsole quopri
Queue
rand random re regex regsub resource rexec rfc822 rgbimg rlcompleter robotparser rotor
sched select sets sgmllib sha shelve shlex shutil signal site smtpd smtplib sndhdr snmp socket stat statcache statvfs string stringprep struct subprocess sunau symbol sys syslog
ScrolledText SimpleHTTPServer SimpleXMLRPCServer StringIO SocketServer
tabnanny tarfile tb telnetlib tempfile termios test textwrap thread threading time timeit toaiff token tokenize traceback tty turtle types tzparse
TERMIOS Tix Tkinter
unicodedata unittest urllib urllib2 urlparse user util uu
UserDict UserList UserString
videoreader
warnings waste wave weakref webbrowser whatsound whichdb whrandom winsound
xdrlib xml xmllib xmlpackage xmlrpclib
zipfile zlib zmod
/C8"Others"
array
cls
fnmatch
struct self

2007年5月30日星期三

随感:借还是不借呢?

起因:Mobile01的版大出借的单反相机被朋友摔坏了,修理、赔偿的过程似乎很曲折……

小弟的一点感想:

我觉得前面有位朋友引用老人的话讲得很好:借出去的东西,就当是丢了罢。

英语有谚:Lending money to a friend, you will lose your money and your friend.

小弟曾经出借过佳能相机给朋友旅游,结果回来后镜头摔坏了。朋友自然是万分道歉,并主动提出赔偿,但小弟还是一笑了事,并未要他赔偿。其实我的朋友本来就是毛躁之人,我借给他时就做好相机可能会损坏的心理准备了,幸好只是普通的家用机而已 如果我真要他赔偿,无论钱多钱少、修理的好坏,最终都会在双方心里留下阴影,很可能导致连普通朋友都做不成。

所以在出借物品给朋友这件事情上,小弟一直认为,你如果有承受物品损坏并且不用对方赔偿的觉悟,那借给人家自然无妨,否则就跟人家讲清楚,自用的贵重物品概不外借。哪怕不理解你的朋友说你一声:小气,也比完全失去这个朋友划得来。借与不借都非固定,完全视与朋友的交情和物品的价值而定,所以借东西的问题说到底是相对论……

有位版友提到典故:

孔子问弟子们:阖各言尔志?

子路的回答是:愿车马衣裘与朋友共,敝之而无憾。

看来,子路的确是个率性的人!

2007年5月29日星期二

排排座:主流PDA手机横向比较

这个数据库的由来:现在网络越来越发达,寻找各种资讯也越来越容易,然而凡事都有两面性,想在网上快速获得准确翔实的信息,却并不像想象得那么简单…… 举个例子:一种PDA手机的名称和具体规格,十家网站可能会有七八个版本的说法,最离谱的,某些网站的编辑竟然指着多普达D810喊道“又一款滑盖手机来了” orz... 所以无数网站看下来,准备买机的朋友往往被搞得头昏眼花,从一个迷茫走向另一个迷茫(迷之音:其实是你自己脑筋不灵光吧,不要拉别人垫背哟~~)咳,总之,小弟打造这个数据库的宗旨,就是为了通过横向比较,让您可以一目了然各款主流PDA手机的参数指标。小弟希望能用最准确的信息给您带来一个愉快的购机历程。

另外小弟自卖自夸地补充一点:如果您发现别家IT网站与本数据库的信息有不符之处,那么十有八九错误的不会是小弟。(迷之音:呵呵,我就不说你什么了~~)原因很简单:本数据库的信息出处首先是各个手机厂家的官方网站,然后小弟会把各大知名IT网站的信息拿来汇总,以再次考量本数据库数据的正确性,通过反复比较、去伪存真,只让正确的信息留下。简单的说,准确的数据,是我的底线。

如果您有需要介绍的手机,请留言让小弟知道!

如果您在这里发现任何错误,请不吝指正,小弟感激不尽。

小弟的目标:维护最准确的简体中文PDA手机数据库,

让“所有的PDA手机在这里集结”。

基本信息

*点击手机型号,可以观看靓照:)

品牌型号

上市时间

机身三围(mm)

重量(含电池)

外观式样

理论通话时间(分钟)

理论待机时间(小时)

电池容量(mAh)

多普达D810(CHT9100台版) (HTC Trinity P3600欧美)

2006年9月

108×58.2×18.4

150g

直板

240(WCDMA)

300(GSM)

200(WCDMA)

250(GSM)

1500

O2 Atom Life 2007年3月 106×58×18 145g 直板

240(GSM)

120(UMTS)

200(GSM) 1530
HTC Kaiser P4550 2007年7月(rumor) 110×58×18 160g 滑盖 1500


硬件进阶

品牌型号

操作系统

处理器

RAM

FLASH ROM

显示屏

有线接口

无线连接

多普达D810(CHT9100台版) (HTC Trinity P3600欧美)

Windows Mobile 5

Samsung SC32442 400MHz

64MB

128MB

2.8寸 TFT QVGA LCD、6万色、240 x 320、触控屏

USB 1.1

红外、蓝牙 2.0、WLAN 802.11 b/g

O2 Atom Life Windows Mobile 5/6 Intel XScale PXA270 624MHz 64MB 1GB 2.7寸 TFT QVGA LCD、26万色、240 x 320、触控屏 USB 1.1 红外、蓝牙 1.2、WLAN 802.11 b/g
HTC Kaiser P4550 Windows Mobile 6

Samsung SC32442 400MHz

64MB 256MB

2.8寸 TFT QVGA LCD、6万色、240 x 320、触控屏

USB 1.1 蓝牙 2.0、WLAN 802.11 b/g (红外待考证)

手机娱乐

品牌型号

网络制式

数据链接

键盘

内置GPS

摄像头

娱乐

存储介质

多普达D810(CHT9100台版) (HTC Trinity P3600欧美)

GSM 四频、WCDMA、HSDPA

GPRS 10、WAP 2.0、EDGE

有 (SiRF Star III)

主: 200万像素、副: 30万像素、无闪光灯

FM收音、MP3、WMA播放

mini SD

(支持热插拔)

O2 Atom Life GSM 三频、UMTS、HSDPA EDGE 主: 200万像素、有副镜头、有闪光、支持微距 FM收音(RDS)、MP3、WMA播放

mini SD

(支持热插拔)

HTC Kaiser P4550 GSM 四频、UMTS、HSDPA

GPRS 10、EDGE

侧滑QWERTY键盘

有 (SiRF Star III)

主: 200万像素、副: 30万像素、支持自动对焦 待考 micro SD

相关数据及图片出处:厂家官方网站、大陆各大IT网站、台湾Mobile01论坛、Sogi!手机王、pdadb.net、Engadget Mobile、CNET Asia等,在此一并表示感谢。

2007年5月28日星期一

新博客第一帖:)

记载我的数码见闻,做小而精的数码blog!