Рекомендовать кроссплатформенный пользовательский интерфейс C ++ и сетевые библиотеки - PullRequest
4 голосов
/ 01 марта 2010

Что нужно учитывать: - легко использовать - быстро - использовать базовую ОС настолько, насколько это возможно (например, wxWidgets для пользовательского интерфейса)

Я склоняюсь к wxWidgets для пользовательского интерфейса и Boost для работы в сети - как они сравниваются с другими?

Ответы [ 8 ]

11 голосов
/ 01 марта 2010

Я слышу хорошие вещи о QT для GUI

Qt - это кроссплатформенное приложение и UI Framework. Используя Qt, вы можете написать веб-приложения один раз и развернуть их на настольном, мобильном и встроенные операционные системы без переписать исходный код

3 голосов
/ 01 марта 2010

Я хорошо выглядел с wxWidgets на внешнем интерфейсе и boost :: asio на сетевом конце.

wxWidgets действительно имеет встроенные сетевые классы, но вы быстро попадаете на них, и есть одно или два больших ограничения. Если вы хотите остаться в мире wx, есть пакет под названием wxCurl , который является хорошим пакетом (я использовал его в первые дни), который оборачивает libCurl с некоторыми wxWidgets idomatic C ++.

В моем предыдущем проекте (проект по передаче данных по сети / файлу) мы в конечном итоге пошли с boost :: asio, который имел преимущество в том, что не был настолько сложен в API, что, казалось бы, проще было настроить этот libCRUL (хотя это могло бы стать лучше, это было несколько лет назад) и дает нам очень общее сетевое ядро ​​(boost может компилироваться где угодно, даже приложения командной строки)

2 голосов
/ 02 марта 2010

Для графического интерфейса я настоятельно рекомендую использовать Qt. Это очень мощный графический интерфейс, который требует написания очень небольшого количества строк кода. У него очень приятная и простая в использовании модель сигналов и слотов.

wxWidgets ИМХО слишком смоделировано после MFC, у которого очень плохая модель.

Сеть: я бы посоветовал перейти на Boost.Asio очень мощно и красиво. Однако если вы Если вы хотите интегрировать сети в основной цикл GUI, вы можете попробовать использовать для этого классы Qt, однако у меня нет с ними опыта.

1 голос
/ 01 апреля 2010

Исторически я использовал XVT , который коммерчески использовался тысячами компаний.

0 голосов
/ 01 апреля 2010

Для графического интерфейса я могу порекомендовать QT

Для работы в сети ACE (Adaptive Communication Environment) или boost :: asio.

0 голосов
/ 04 марта 2010

Мы добились больших успехов, используя wxWidgets с boost :: asio, оба рекомендуется для разработки на настольных серверах.

0 голосов
/ 01 марта 2010

boost :: asio, кажется, очень хорошо написан и имеет очень чистый API - я все еще пытаюсь узнать, насколько он хорош для многопотокового многопоточного TCP / IP.

Ваш другой выбор может быть Poco или ACE . Сокетная абстракция Poco довольно наивна, т. Е. Позволяет только Poco делать вещи. Я никогда не слышал ничего хорошего о ACE.

edit: Хм, я переосмысливаю ACE, и теперь он становится более понятным для меня (после написания нескольких сетевых приложений) - он может подойти для моих потребностей по сравнению с ASIO. Тем не менее, это более чем вероятно, излишним для вас. Если мои сверстники узнают об этом, меня будут избегать до конца времени.

0 голосов
/ 01 марта 2010

Оба Qt или wxWidgets могут работать в сети, даже если это не их первая цель.

Для большего количества сетевых библиотек, кроме boost :: asio , вы можете проверить ACE (Adaptive Communication Окружающей среды) или POCO

Сравнения между этими библиотеками уже обсуждались в stackoverflow .

...