Небольшой нативный кроссплатформенный графический интерфейс для C ++ - PullRequest
6 голосов
/ 29 ноября 2010

Я написал небольшую программу с Boost на C ++. Он работает нормально, и поэтому я хочу дать ему графический интерфейс, чтобы его было проще использовать.
Для этого я ищу небольшой кроссплатформенный фреймворк, который обеспечивает естественный внешний вид. Поддержка Windows и Linux была бы достаточной, в настоящее время я не нуждаюсь в OS X ...

Я использовал wxWidgets для какого-то другого проекта, но было сложно все настроить и отправить эту большую библиотеку с программным обеспечением. Но я был действительно поражен использованием настоящих нативных элементов управления. Чтобы программа была маленькой, я также попробовал fltk, но она выглядит ужасно.

Мне просто нужен простой фреймворк без поддержки сети или других уловок.

Итак, мой вопрос: есть ли какая-либо структура, которая соответствует всем требованиям? Или, если нет, какие рамки соответствуют хотя бы некоторым из этих потребностей?

Заранее спасибо!

Ответы [ 9 ]

7 голосов
/ 29 ноября 2010

Когда в его названии присутствует слово «framework», оно почти никогда не бывает маленьким.

В любом случае, графические фреймворки / библиотеки имеют тенденцию быть большими, потому что им нужно обрабатывать много вещей.1004 * Qt, вероятно, лучшая простая библиотека для кроссплатформенного графического интерфейса, но она определенно не представляет собой «маленькую платформу».С другой стороны, в системах Linux Qt, скорее всего, уже будет установлен.Плюс это определенно платит за его размер.

4 голосов
/ 29 ноября 2010

wxwidgets довольно маленький, насколько наборы графического интерфейса.

И это кроссплатформенная

http://www.wxwidgets.org/

Вы упомянули об этом, но что касается кроссплатформенных наборов инструментов, то это один из самых маленьких, что я видел.

Единственное другое предложение, которое у меня есть, заключается в том, что вы можете поместить свой код в библиотеку C и связать его с другим языком. например Используйте .NET для Windows и Mono для Linux или даже для Java-приложений (хотя они не всегда выглядят очень естественно для платформы). Тогда используйте вашу библиотеку оттуда.

2 голосов
/ 30 ноября 2010

не забудьте также проверить сок

2 голосов
/ 29 ноября 2010

Ultimate ++ может содержать то, что вам нужно. (Хотя в FAQ они звучат так, как будто их библиотека действительно большая, мне это не кажется плохим.)

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

Если вы хотите, чтобы он был маленьким, просто напишите GUI дважды - один раз в MFC, а затем в X. Ваш GUI звучит достаточно просто. Создайте свою собственную небольшую абстракцию, которая является именно тем, что вам нужно.

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

Qt работает потрясающе, но не очень мало.Я обнаружил, что на самом деле не хватает «маленьких» кроссплатформенных графических интерфейсов.Вы можете просто попытаться абстрагировать свой GUI с помощью #ifdefs повсеместно, или использовать Qt / wx.

0 голосов
/ 08 апреля 2019

Здесь представлен длинный список как активных, так и мертвых кроссплатформенных библиотек пользовательского интерфейса C ++: https://philippegroarke.com/posts/2018/c++_ui_solutions/ Некоторые из них маленькие и имеют естественный вид.

0 голосов
/ 29 ноября 2010

Как и другие упомянутые, вы не можете смешать «кроссплатформенный» и маленький по размеру в одном предложении.

Больше работы, меньше по размеру: Одно из решений, которое я могу предложить, это использовать нативную привязку Python для пользовательского интерфейса. Поскольку вы уже используете boost, довольно просто установить Boost.Python для связи между пространством C ++ и пространством python. У вас уже есть Python для Linux и его пакет размером 20-40 МБ для Windows (не могу вспомнить, насколько велика последняя версия). Но здесь вам придется использовать привязку win32 на окнах и привязки gtk / qt на linux, так что больше работы. Нет, слишком много работы для поддержания, поцарапайте это.

Умеренная работа, меньше по размеру, но с ненативными элементами управления: Вы можете попытаться получить беспорядок или freeglut, чтобы получить работу вашего пользовательского интерфейса, но я лично не использовал их, поэтому я не знаю, предоставляют ли они полный нативный внешний вид для ваших приложений. Но они имеют небольшие размеры по сравнению с WX или QT.

Меньше работы, больше по размеру: Используйте WxWidgets, если вы уже знакомы с ним, в противном случае я рекомендую Qt.

Вы также можете посмотреть на другие предложения: http://en.wikipedia.org/wiki/List_of_widget_toolkits

Беспорядок: http://www.clutter -project.org / about FreeGLUT: http://freeglut.sourceforge.net

0 голосов
/ 29 ноября 2010

когда-либо слышали о QT ???

http://qt.nokia.com/products/

Я думаю, это должно соответствовать всем вашим потребностям

...