Каковы некоторые из "лучших" кросс-платформенных инструментов С++ UI сегодня?
Я пишу высокопроизводительную систему в портативном современном С++. Много STL и Boost. Я хотел бы начать строить некоторые передние концы этой системы. Обычно я предпочитаю использовать неконвертированное решение для пользовательского интерфейса, но это означает, что пользовательский интерфейс с очень высокой производительностью, что означает низкую задержку для ответа на сообщения, большой объем сообщений для сортировки и отображения и т.д. Я написал много пользовательских интерфейсов реального времени в .NET, они выполняют работу довольно хорошо. Однако я действительно хочу, чтобы это была кросс-платформа без трюков (таких как Mono), и она просто работает. Каковы некоторые из лучших вариантов для этого?
EDIT:
Позвольте мне бросить еще один, который я только что вспомнил, JUCE. Бесплатно для некоммерческого использования и кросс-платформенного. Проблема только в том, что разработка контролируется одним человеком, но исходный код доступен.
JUCE
Ответы
Ответ 1
Хотя я не уверен, что вы подразумеваете под "Tricks", я могу только дать вам эти ссылки. Будет ли это "наилучшим" для вас, чтобы решить.
- WxWidgets. Бесплатно для коммерческого использования. Старый, но совместимый дизайн API (без исключений, без шаблонов, без RTTI, без использования STL). Он использует собственные виджеты.
-
Qt. Современные рамки. Поддержка SQL для встроенного ECMA script. Включает встроенный Webbrowser. Виджеты являются CSS-объектами и могут быть помещены в трансформируемый холст. Удивительный инструментарий. Это также быстро. Не бесплатно для коммерческого использования, но бесплатно для проектов с открытым исходным кодом.
- Изменить: с 14 января 2009 года, Nokia объявила, чтобы поставить Qt в LGPL, что делает Qt доступным для коммерческого использования - бесплатно.
- GtkMM. Связывание С++ с известным gtk + toolkit, используемым в качестве основы GNOME. Бесплатно для коммерческих (но не может связывать статически). Современный С++ API. GUI Toolkit только. Как и Qt, он рисует сами виджеты. Это дает несколько плохой взгляд на Windows (Qt довольно хорошо рисует виджеты). Я не тестировал его, поэтому я не могу сказать вам о производительности.
Есть больше. Но я знаю только тех, кто хорошо рассуждает о них.
Ответ 2
Qt, безусловно, является самой полной, хорошо поддерживаемой кросс-платформенной платформой С++ GUI, существующей сегодня.
Ответ 3
Недавно я изучил почти все упомянутые выше инструментальные средства.
Я бы сказал, что Qt на сегодняшний день является наиболее целесообразным набором инструментов для использования. Я говорю "целесообразно", но не "лучше", потому что на самом деле инструментарий не идеален, в общем, нет "идеальных" решений кросс-платформенных проблем.
Вот некоторые из плюсов и минусов Qt 4.5 (aka Qt 2009.01), доступный под LGPL начиная с jan 2009
преимущества:
- поддерживает множество платформ,
наиболее значимые (я предполагаю)
Windows, Mac OS X и Linux.
- выглядит родным (когда-то действительно использующим родной материал под
капот) в Windows, Mac OS X и
Linux. Он отлично работает на
окна. Cocoa поддерживается на Mac
OS X, что немаловажно. В Mac OS
X, можно сделать
интерфейс выглядит почти
неотличимый от native Cocoa
приложения.
- он поставляется с действительно отличной кросс-платформенной системой сборки,
который может сэкономить массу времени.
- это полный набор, как говорят некоторые, рамки приложения, а не
просто графический интерфейс. например база данных
и сети. это даже дает вам
webkit.
- отличная документация. один из лучших наборов документации,
можно найти в графических интерфейсах. его
даже лучше, чем MSDN и apple
ссылки на разработку.
- все другие распространенные кросс-платформенные вещи.
Недостатки:
- Это большой. настройка не такая мелочи.
обучение занимает немного времени.
занимает много дискового пространства.
Ответ 4
Я считаю, что Ultimate ++ (вы можете легко выполнить поиск в Google на основе имени Ultimate ++) очень хорошо. Он сильно использует шаблоны С++, но проблема в том, что он работает только и создает исполняемые файлы для Windows и Linux, а не для Mac OS. У него есть IDE, и его IDE написано с использованием самого Ultimate ++ (проблема с курицей и яйцом). Преимущество использования U ++ по сравнению с .NET и Mono заключается в том, что в результате приложения имеют меньший размер, поскольку никакие рамки не требуются для установки для запуска приложений.
Ответ 5
Вы найдете много межплатформенных графических интерфейсов для С++, но AFAIK Qt - единственный реальный выбор.
Ответ 6
Мне всегда очень нравились wxWidgets.
Относительно ответа на установку его на windows, есть несколько отличных видео на нем...
http://blip.tv/file/1068698
и здесь
http://wxwidgets.info/video
Ответ 7
Список инструментов С++ GUI можно найти в старом сообщении в блоге, которое я написал. Около половины из них являются кросс-платформой (через "большую тройку" ). Увы, некоторые из них в основном были оставлены.
К сожалению, ни один из них не идет без компромиссов. IMO нет очевидного выбора, когда речь заходит о С++ GUI-библиотеках. Внимательно изучите ваши конкретные требования.
Если у вас нет особого GUI-интерфейса, любой из wxWidgets, Qt, FLTK или Gtkmm, скорее всего, сделает трюк.
Ответ 8
Один из лучших приложений с открытым исходным кодом, который я видел, - Songbird. Это медиа-плеер, подобный iTunes, построенный поверх Modzilla инфраструктура XULRunner.
Ответ 9
Мне нравится wxwidgets в целом, но я в основном использовал его в Linux. Недавно я попробовал установить на Windows XP с g++ и имел b **** времени установки.
Изменить:
Чтобы сделать немного более подробно, у меня возникли проблемы с его созданием.
Ответ 10
Вы говорите, что обычно не пишете пользовательский интерфейс на С++, но в этом случае обеспокоены производительностью. Поэтому я Nth рекомендации Qt, поскольку он имеет привязки для других языков, например. PyQt. Ваши виджеты будут быстрыми С++ Qt-виджетами, вы можете сортировать свои сообщения с помощью тонко обернутых собственных Qt-методов и удерживать их вместе с небольшим количеством python/perl/whatever.
Ответ 11
Не забывайте о XVT, он доступен как С++ Object Library и C API. См. Www.XVT.com. Он потерял свой путь в середине 90-х, но все еще поддерживается и продается. Он использует собственные виджеты, где это возможно, а не эмуляцию. Когда он был популярен, он был куплен 19000+ компаниями для коммерческого использования программного обеспечения, и он имеет огромную глубину для его реализации.
и нет, я не работаю для них!
Тони