创客百科

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

用户工具

站点工具


note:spoony:树莓派gui编程

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

note:spoony:树莓派gui编程 [2017/04/04 16:25]
note:spoony:树莓派gui编程 [2017/04/04 16:25] (当前版本)
行 1: 行 1:
 +====== 树莓派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 (外部编辑)