选择GUI要根据设备的屏幕尺寸和CPU处理能力以及ram资源而定。
对于小屏幕的设备(例如只有128x64),很多是自己定制的GUI库,而大一点屏幕的设备,如240x320,又有充足的资源,那么可以选择'标准'的GUI库。
GTK: gtk可以基于X,或者Framebuffer之上,裁减后的GTK2.0也要8M以上。有很多方案是基于GTK的,例如OPIE。OpenMoko的 GUI也是基于GTK。使用GTK的好处是,可以在PC上开发应用程序,由于PC上也有GTK环境,模拟器也比较容易建立。
QT:qt有面向嵌入式的版本QtOpia, 也是比较完整的解决方案,也有很多公司基于此推商业方案(QT有双重许可证),不过我个人不太喜欢QT对C++的非标准扩展。
MiniGUI: 说实在minigui也是很不错的,轻量级,移植也比较容易。不知道现在minigui商业化后对开源版本的维护情况如何。
Nano-X: 前身叫Micro-windows,是一个非常不错的超轻量级GUI库,稳定,运行效率也比较高,非常适合中底端系统。
重量级的GTK和QT之所以得到更多的应用,是因为有PC的标准环境,开发应用程序比较容易,而且有很多PC上的程序可以比较顺利移植到嵌入式系统上。对于资源比较紧张的系统,则可以考虑Nano-X,或者自己编写GUI库。
介绍一篇文章,作者对GTK和QT,以及嵌入式GUI的其它方面做了比较:http://www.linuxjournal.com/article/4870
作者最后定制的GTK+X仅2.9M,虽然是GTK1.2.8,也是惊人的精简了。
glib只提供基本的封装,方便与X打交道,一般不会直接基于glib建立图形应用程序(例如XTerm就是直接调用glib来实现的,界面比较丑陋)。GTK调用glib作为底层服务,为应用层提供丰富的控件。
GTK+ QT MINIGUI NANO-X
最新推荐文章于 2022-12-27 17:58:27 发布