如果没有必要支持windows系统的话, 推荐用PyGObject.
gtk写起来很简单的, 尤其是gtk3, 引入了相当多的新功能, 绘制界面更给力! 还可以直接用CSS来定义软件的主题, 很灵活.
在debian/ubuntu/fedora等系统里, 要做gtk的开发, 至少得安装这几个软件: devhelp用于查看API的, glade用于直接绘制软件界面的.
glade是将界面转成了xml文件, gtk可以直接读取这类文件, 用GtkBuilder, GTkUIManger等;
也可以手动来写界面的xml文件, 将像手写html文件那样, 刚才开始可能记不住, 但写几个之后就发现很容易;
这两种方式设计的界面是跨语言的, C/C++/Python/Vala/...都是可直接用的.
另外, 程序的样式可以单独放到一些CSS文件里.
只用Python来实现程序的逻辑.
这种方式就像写网页, 用html来做页面结构, CSS来控制样式, javascript控制逻辑.
当然了, 你也可以把所有的工作都用python来做, 比如软件界面用python一点点来绘制, 样式的话也是.
还有, gtk里可以直接使用cairo, 强大的2D矢量绘图库, 几行代码就可以实现很酷的特效.
我的PyGObject的开发经验是, 使用bpython3来查gtk的api, 因为bpython3支持自动补全, 可以直接显示widget的所有方法, 包括父类的方法. 没有完整的PyGObject API, 因为它与gtk的C API几乎完全一样, 我认为也没必要存在.
我还用glade来设计软件的大致结构, 然后用python来实现.
样式的话, 很少用, 因为gtk3(gnome)的默认主题已经很好了.
我用vim来写的, F4直接运行, 如果发现了界面的问题, 直接关闭; 然后修改代码, 再F4, 再确认是否存在问题. 我很喜欢这种快速反馈的方法, 写网页时也是这样的流程, 开发速度非常高.
参考资料:
入门的话, 可以看这个http://
python-gtk-3-tutorial.readthedocs.org/en/latest/cairo的:
http://zetcode.com/gfx/pycairo/更详细的是翻看devhelp里的API.
另一个技巧是, 用glade来尝试着设计, 然后需要修改一个widget的某个属性时, 可以在右下角的属性设置里右键, 会在devhelp中定位相应的API, 这很直观.
推荐一个有人最近发布的酷我音乐盒的 PyGObject实现:
https://github.com/LiuLang/kwplayer可以读一下他的代码.