创客百科

姿势共享,有节操无门槛参与的创客百科,创客动力之源 \ (^_^) /

用户工具

站点工具


note:spoony:树莓派gui编程

树莓派GUI编程

作者 cwall

树莓派出现以后,如何基于树莓派进行GUI编程,成为一个实际问题。虽然官方的X进行了驱动优化,性能提高了很多,但是由于树莓派上的软件一般逻辑简单,基于一个庞大的X,还是极大的影响了软件的可用性。

那么,在树莓派上,有什么可以实现X的替代方法呢?

基于树莓派的GUI开发,其核心问题是如何利用BCM2835(6)芯片的VideoCore的性能,实现图形的输出。最早利用vc的程序应该是omxplayer,一个运行树莓派的媒体播放器,相信每个玩树莓派的玩家都惊讶于它的解码能力。

在树莓派官方系统的代码里,对VideoCore的API及其示例代码存放在/opt/vc目录下。主要是bcm_host.h文件。另外该目录下还包括了EGL、GLES、GLES2、VG和WF等子目录,分别是基于它的一些封装API,便于用户进行程序开发。例如omxplayer就是VG(OpenVG)开发的。

所以,基于OpenGL ES、OpenVG是树莓派GUI开发的性能最高的方式。如果你的软件不需要widget,不需要windows,甚至不需要什么输入,那完全可以用OpenVG进行代码开发,实现最快的图形输出性能。具体例子嘛,看/opt/vc下的代码就可以了。

但是很多软件还需要复杂的逻辑控制,需要按钮、菜单、窗口、甚至滚动条,这就不是一个只提供画点、画线的API所能解决的了,这时需要更高层的库,也就是俗称的GUI库。

下面,我就为大家推荐几个不依赖于X的GUI(也就是Widget开发)方案给大家。

1、kivy Kivy(http://kivy.org),是一个开源的Python库,用于快速应用软件开发,可以创建有创意的用户界面,例如多点触摸界面。 Kivy通过硬件加速来实现图形界面,包括从Button到Popup Menu等一百多个Widgets和完善的文档手册。Kivy对树莓派支持良好i,可以在raspbian中直接手动安装,也可以直接下载KivyPie来使用。

2、Qt,相信这个跨平台的Widget库已经为所有人所熟悉。Qt不但可以支持X作为后端,也可以支持waylaid作为后端,所以用Qt可以开发脱离X的树莓派GUI程序。 相对于其它,Qt的缺点就是体型庞大,不知道在树莓派下是否可以瘦身。

3、GTK+,声称对OpenGL ES2.0的支持在最新的版本中得到了更好的体验,感兴趣的可以试试在树莓派下的表现。

以上是我对在树莓派下进行图形开发的一些了解,错误之处难免,希望抛砖引玉,有更好的方案多多讨论,谢谢。

本页面的其他翻译:
note/spoony/树莓派gui编程.txt · 最后更改: 2017/04/04 16:25 (外部编辑)