2007年6月28日星期四
All the references about Glade and PyGTK.
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/
Python 编程及GUI设计工具集 1.0版发布
工具集内容(Windows版):
python 2.5.1
pygtk all-in-one package
glade3-3.2.2
注:文件来源于各主题网站,皆为自由软件。
工具集下载地址:
http://files-upload.com/329814/PythonGUI.rar.html
本工具集会随各软件更新而定期更新,请关注我的blog。
Glade vs 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月27日星期三
2007年6月26日星期二
如何使你的UltraEdit支持Python语法高亮
/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日星期三
随感:借还是不借呢?
小弟的一点感想:
我觉得前面有位朋友引用老人的话讲得很好:借出去的东西,就当是丢了罢。
英语有谚: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) |
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 | 显示屏 | 有线接口 | 无线连接 |
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 | 摄像头 | 娱乐 | 存储介质 |
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等,在此一并表示感谢。