2010-11-04 19 views
6

Estoy buscando una biblioteca de GUI multiplataforma ligera para diferentes aplicaciones de procesamiento de señal. Un programa ANSI-C debe estar vinculado de forma estática con él y el tamaño es importante. Una aplicación terminada debe tener el mismo aspecto en cualquier plataforma como iPad, iPhone, Android, Ubuntu, Leopard, Windows, etc.Plataforma cruzada ligera C GUI (OpenGL)

Qt no es apropiado, porque es C++, es demasiado grande y no funciona en iOS dispositivos. Me inclino por la biblioteca de GUI basada en OpenGL, porque OpenGL es compatible con todas las plataformas de destino modernas y una aplicación OpenGL tendrá el mismo aspecto en todos los dispositivos.

Preferiblemente, dicha GUI debe admitir definiciones de formularios usando la semántica declarativa, p. Ej. desde cadenas C o desde archivos textuales externos.

+7

creo "mismo aspecto en cualquier plataforma" es no es una buena idea. Creo que es mejor tener 'el aspecto estándar de cada plataforma' – pmg

+0

C y Android ... Extraña mezcla. ¿Puedes usar el PDK entonces? – jv42

+1

Qt Quick QML * does * funciona en iOS y le permite escribir animaciones basadas en OpenGL con JavaScript, que luego se compila en C. – trusktr

Respuesta

10

Puede probar el desorden. Fue escrito en C y el respaldado tiene soporte para EGL y GLX. http://www.clutter-project.org/

+0

+1 parece un ajuste perfecto para la pregunta del OP. – jv42

+0

¡Thx, parece exactamente lo que necesito! – psihodelia

+1

Se ve bien, pero ¿cómo funciona la licencia LGPL en iOS, donde necesita enlaces estáticos? –

1

¿Qué tal GTK? Se ha portado al linux framebuffer y existe para Windows. Sin embargo, no estoy seguro de cuánto esfuerzo requeriría para convertirlo en un framebuffer en un entorno incrustado.

+2

Tenga en cuenta que no tiene acceso al framebuffer verdadero en un dispositivo Android no rooteado; tiene que pasar por java o abrir GL para dibujar cosas. –

+1

GTK está dolorosamente hinchado. Cualquier cosa basada en GObject también puede estar fuera de discusión. – weberc2

1

Pruebe el marco de trabajo de YOU i Labs uSwish UI para Android.

Es un marco de interfaz de usuario multiplataforma que se ejecuta en la mayoría de los sistemas operativos. Es C y C++ con procesamiento extremadamente rápido de software y hardware.

www.youilabs.com

2

Un buen proyecto que debe saber sobre todo es Kivy. Es un lenguaje de programación multiplataforma de código abierto para hacer aplicaciones con OpenGL en Linux, Windows, MacOSX, Android e IOS. http://kivy.org

Viene con su propio kit de herramientas de widgets para crear UI para que pueda tener la misma interfaz en todas las plataformas y es compatible con multitouch. Es mucho mejor que escribir una aplicación en PhoneGap o en Appcelerator (HTML5 y JavaScript aún tienen mucho camino por recorrer antes de que el rendimiento sea tan bueno como las aplicaciones nativas). Usando Kivy puedes hacer aplicaciones que funcionan tan bien como las aplicaciones nativas, para todas las plataformas.

3

El lenguaje Haxe (http://haxe.org/) le permite escribir y compilar aplicaciones con OpenGL para muchas plataformas (Android, iOS, BlackBerry, WindowsPhone HTML5, Linux, Windows 8, Mac OSX, ...) usando una base de código ... . Vale la pena echarle un vistazo. Ya hay algunas bibliotecas de GUI creadas para él (http://haxe.org/doc/libraries/gui), y también podría escribir su propia biblioteca de GUI. Para crear su propia biblioteca GUI, sería una cuestión de aprender a dibujar y animar cosas usando HaxeNME (http://haxenme.org), que ya incluye aspectos básicos como campos de texto. Para los botones de opción, las casillas de verificación, etc., debe dibujarlos, o usar/modificar una de las bibliotecas de GUI existentes según sus necesidades. La ventaja de usar Haxe es que su aplicación puede ejecutarse en muchas plataformas.

Eche un vistazo al escaparate de las aplicaciones accionadas por HaxeNME: http://www.haxenme.org/showcase/.

0
  1. libnui es el mejor enfoque, en mi opinión, utiliza CSS Filosofía. Pero no está en contribución activa.
  2. Kivy es buena herramienta, pero hay que incrustar Python.h con su aplicación que hacen que su aplicación crecer en tamaño (por defecto 40M androide)
  3. qt es una buena utilidad pero el rendimiento en comparación con otros instrumentos es un poco lento y su la licencia no es tan barata para aplicaciones móviles comerciales. (GPL v3)
  4. Juce es otra solución, pero su interfaz gráfica de usuario no es madura, creo.

Mi sugerencia: es mejor usar C++ para el modelo de negocio crossplatform como WebServer y usar una interfaz gráfica de usuario específica de la plataforma. vea este video https://www.youtube.com/watch?v=ZcBtF-JWJhM y mire este informe: https://github.com/libmx3/mx3 espero que tenga sentido para usted. :)

0

Recomendaría Cocos 2d-x (C++, OpenGL ES 2.0, de código abierto, rápido y con gran GUI Biblioteca que contiene muchas clases - ventanas, botones, vistas de desplazamiento, listas, etc.) Su framework C++ de crossplatform Android, iOS, Win32, OS X y Linux (utilizan sobre todo para juegos, pero funciona bien para aplicaciones de interfaz de usuario simple) por cierto que tiene editor visual para configurar la interfaz de usuario

cocos2d-x.org

Cuestiones relacionadas