- 25
- Mar
昨天抱怨了一下Linux下的图形开发,可能大家会觉得莫名其妙。因此,未来几天,我会写点简短的文章总结一下。
总结一下过去,展望一下未来。今天是第一篇:GTK Spinner。
GTK是Linux桌面的标准图形库,实际上QT也是,因为它也在LSB的标准里。
GTK的发展一直不紧不慢,如果仅谈图形开发的能力的话,GTK是不如QT的。不仅是因为GTK的默认Widget比较少,而且自定义也不容易。当然这保证了GTK的小巧和轻量,也就是Chrome浏览器选择了GTK的原因。
好~GTK的未来还是光明的,因为开发者们正不断引入一些已经非常成熟和通用的Widget,比如:Spinner,就是“风火轮”。
在现代图形应用设计(无论是桌面还是Web)中,经常是用Spinner来表示当前处理任务处理的进程,而不是用进度条。一来Spinner不需要显示进度,二来它占用的空间少,可以给用户最直观的反馈。
特别是在新兴的Android移动平台中,Spinner的应用发挥到了极致,Google还设计出了有进度条功能的Spinner。总之在Android上是无处不在,不知道iPhone上如何,这点不是很了解。
而在Mac OS X平台,Spinner早就是默认的控件了,它也早被应用至了Mac OS X的各个角落。
如今Ubuntu 10.04(GNOME 2.30)即将到来,GTK Spinner也将成为成为默认的控件,因此在设计桌面图形软件时,我们可以使用这招来帮助设计简洁又有用的等待操作反馈。
请看:
貌似我得录制一个GIF动画?算了,没时间。
只有这种常用的Widget的充足,开发Linux图形软件才会更加容易,开发者不用费尽心思去自己实现风格不一的Spinner,造成UI的不一致。当然HIG也是非常重要的。
你觉得呢?

也就是说spinner现在还不是标准GTK库的控件么
Linux的一直都还没机会尝试
厄,原来都是用图片 + g_timeout_add定时换图片搞的
用 gtk.image_new_from_animation 干 gif 图片就好了,
省得等待 Spinner 进入 Gtk 官方。
原来是这么一个控件,学习了。
如果GObject和GModule等人性化些就好了,
至少我绝的这是我学习GTK时最恶心的地方
同感……如果用C语言的GObject来定义自己的对象,那可真是会死人的。
可以考虑用 Vala 来写 C/Gtk。
不过 Vala 社区的代码风格跟 PyGtk 用户的习惯差异好大
这控件现在的KDE4就有。。。。运用在安装新plasma部件中,连上kde-look刷新部件列表时
截图:http://i39.tinypic.com/fxdu3c.jpg
嗯,KDE是比较全面的,毕竟基于Qt嘛。
呐 http://api.kde.org/4.4-api/kdelibs-apidocs/plasma/html/classPlasma_1_1BusyWidget.html
这是kde实现的
BusyWidget,不错啊。GNOME要向KDE学习才好。