轻量级跨平台C GUI(OpenGL)

时间:2010-11-04 09:42:33

标签: android c user-interface ios opengl-es

我正在为不同的信号处理应用寻找轻量级的跨平台GUI库。 ANSI-C程序必须与其静态链接,并且大小很重要。完成的应用程序必须在iPad,iPhone,Android,Ubuntu,Leopard,Windows等平台上具有相同的外观。

Qt不合适,因为它是C ++,太大了,并且在iOS设备上不起作用。我倾向于基于OpenGL的GUI库,因为每个现代目标平台都支持OpenGL,并且OpenGL应用程序在每个设备上都具有相同的外观。

优选地,这种GUI必须使用声明性语义来支持表单定义,例如,来自C字符串或外部文本文件。

7 个答案:

答案 0 :(得分:10)

你可以尝试杂乱。它是用C语言编写的,并且支持EGL和GLX。 http://www.clutter-project.org/

答案 1 :(得分:3)

Haxe语言(http://haxe.org/)允许您使用一个代码为许多平台(Android,iOS,BlackBerry,WindowsPhone HTML5,Linux,Windows 8,Mac OSX ......)编写和编译OpenGL驱动的应用程序基地...值得一试。已经为它创建了一些GUI库(http://haxe.org/doc/libraries/gui),您也可以编写自己的GUI库。要创建自己的GUI库,需要学习如何使用HaxeNME(http://haxenme.org)绘制和动画事物,其中已经包含了文本字段等基本内容。对于单选按钮,复选框等,您必须绘制它们,或者根据您的需要使用/修改现有的GUI库之一。使用Haxe的好处是您的应用程序可以在许多平台上运行。

查看适用于HaxeNME的应用程序的展示:http://www.haxenme.org/showcase/

答案 2 :(得分:2)

一个你应该都知道的好项目是Kivy。它是一种开源的跨平台编程语言,用于在Linux,Windows,MacOSX,Android和IOS上制作支持OpenGL的应用程序。 http://kivy.org

它附带了自己的widget工具包,用于创建UI,以便您可以在所有平台上拥有相同的界面,并且它支持多点触控。这比在PhoneGap或Appcelerator中编写应用程序要好得多(HTML5和JavaScript在性能与原生应用程序一样好之前还有很长的路要走)。使用Kivy,您可以为所有平台制作与本机应用程序一样出色的应用程序。

答案 3 :(得分:1)

GTK怎么样?它被移植到linux framebuffer并且它存在于Windows。我不确定在嵌入式环境中将它移植到帧缓冲区需要多少努力。

答案 4 :(得分:1)

试试你的实验室uSwish Android的UI框架。

这是一个在大多数操作系统上运行的跨平台UI框架。它是C和C ++,具有极快的软件和硬件渲染。

www.youilabs.com

答案 5 :(得分:0)

  1. libnui是我认为使用css Philosophy的最佳方法。但它并没有积极贡献。
  2. kivy是一个很好的工具,但你必须在你的应用程序中嵌入python.h,使你的应用程序大小增长(android 40M默认)
  3. qt是一个很好的实用程序,但性能与其他工具相比有点慢,而且它的许可证对于商业移动应用程序并不便宜。(GPL v3)
  4. Juce是另一种解决方案,但我认为它的gui api并不成熟。
  5. 我的建议:最好将c ++用于像WebServer这样的跨平台商务模型,并使用特定于平台的gui。 观看此视频https://www.youtube.com/watch?v=ZcBtF-JWJhM 看看这个回购:https://github.com/libmx3/mx3 希望对你有意义。 :)

答案 6 :(得分:0)

我会推荐Cocos 2d-x(C ++,OpenGL ES 2.0,开源,快速,并且包含很多类的GUI库 - 窗口,按钮,滚动视图,列表等) 它适用于Android,iOS,Win32,OSX和Linux的跨平台C ++框架 (主要用于游戏,但适用于简单的UI应用程序) 顺便说一下,它有可视化编辑器来配置UI

cocos2d-x.org