Легкий кроссплатформенный C GUI (OpenGL) - PullRequest
7 голосов
/ 04 ноября 2010

Я ищу облегченную библиотеку кроссплатформенного графического интерфейса для различных приложений обработки сигналов.Программа ANSI-C должна быть статически связана с ней, и размер имеет значение.Готовое приложение должно выглядеть одинаково на любой платформе, такой как iPad, iPhone, Android, Ubuntu, Leopard, Windows и т. Д.

Qt не подходит, потому что это C ++, слишком большой и не работаетна устройствах iOS.Я склоняюсь к библиотеке GUI на основе OpenGL, потому что OpenGL поддерживается всеми современными целевыми платформами и приложение OpenGL будет выглядеть одинаково на всех устройствах.

Предпочтительно такой GUI должен поддерживать определения форм с использованием декларативной семантики, например, из строк C или из внешних текстовых файлов.

Ответы [ 7 ]

10 голосов
/ 04 ноября 2010

Вы можете попробовать беспорядок.Он был написан на C и имеет поддержку EGL и GLX.http://www.clutter -project.org /

3 голосов
/ 23 сентября 2012

Язык Haxe (http://haxe.org/) позволяет писать и компилировать приложения на основе OpenGL для многих платформ (Android, iOS, BlackBerry, WindowsPhone HTML5, Linux, Windows 8, Mac OSX, ...), используя однукодовая база ... Стоит проверить.Для этого уже есть несколько библиотек GUI (http://haxe.org/doc/libraries/gui), и вы также можете написать свою собственную библиотеку GUI.Чтобы создать свою собственную библиотеку графического интерфейса, нужно научиться рисовать и анимировать объекты с помощью HaxeNME (http://haxenme.org), который уже включает в себя базовые элементы, такие как текстовые поля.Для радиокнопок, флажков и т. Д. Вам придется нарисовать их или использовать / изменить одну из существующих библиотек графического интерфейса в соответствии с вашими потребностями.Преимущество использования Haxe состоит в том, что ваше приложение может работать на многих платформах.

Посмотрите на витрину для приложений на основе HaxeNME: http://www.haxenme.org/showcase/.

2 голосов
/ 09 сентября 2012

Хороший проект, о котором вы все должны знать, это Kivy .Это кроссплатформенный язык программирования с открытым исходным кодом для создания приложений на базе OpenGL в Linux, Windows, MacOSX, Android и IOS.http://kivy.org

Он поставляется со своим собственным набором инструментов для создания пользовательских интерфейсов, так что вы можете иметь один и тот же интерфейс на всех платформах, и он поддерживает мультитач.Это намного лучше, чем написание приложения в PhoneGap или Appcelerator (HTML5 и JavaScript все еще могут пойти дальше, прежде чем производительность станет такой же хорошей, как у нативных приложений).Используя Kivy, вы можете создавать приложения, которые работают так же хорошо, как и нативные приложения, для всех платформ.

1 голос
/ 11 августа 2011

Попробуйте пользовательский интерфейс YOU i Labs uSwish для Android.

Это кроссплатформенный интерфейс пользовательского интерфейса, который работает в большинстве операционных систем.Это C и C ++ с чрезвычайно быстрым программным и аппаратным рендерингом.

www.youilabs.com

1 голос
/ 04 ноября 2010

Как насчет GTK? Он был перенесен в кадровый буфер Linux и существует для Windows. Я не уверен, сколько усилий потребуется для его переноса на кадровый буфер во встроенной среде.

0 голосов
/ 12 января 2016

Я бы порекомендовал Cocos 2d-x (C ++, OpenGL ES 2.0, с открытым исходным кодом, быстрый и с отличной библиотекой GUI, содержащей много классов - окна, кнопки, представления с прокруткой, списки и т. Д.). Его кроссплатформенная платформа C ++ для Android, iOSWin32, OSX и Linux (в основном используются для игр, но хорошо работают для простых приложений пользовательского интерфейса), кроме того, он имеет визуальный редактор для настройки пользовательского интерфейса

cocos2d-x.org

0 голосов
/ 18 января 2015
  1. libnui - лучший подход, на мой взгляд, он использует css Philosophy.but он не в активном вкладе.
  2. kivy - хороший инструмент, но вы должны встроить python.h в свое приложение, которое делаетВаше приложение увеличивается в размере (по умолчанию Android 40M)
  3. qt - хорошая утилита, но сравнение производительности с другими инструментами немного медленное, а его лицензия не так уж дешева для коммерческих мобильных приложений. (GPL v3)
  4. Juce - это еще одно решение, но я думаю, что его графический интерфейс не является зрелым.

Мое предложение: лучше использовать c ++ для кроссплатформенной бизнес-модели, такой как WebServer, и использовать графический интерфейс для конкретной платформы.посмотрите это видео https://www.youtube.com/watch?v=ZcBtF-JWJhM и посмотрите репо: https://github.com/libmx3/mx3 надеюсь, что это имеет смысл для вас.:)

...