Подтвердить что ты не робот

Каковы плюсы и минусы в С++ Qt vs Eclipse RCP для кросс-платформенного графического интерфейса?

Я собираюсь разработать новый графический интерфейс для существующего приложения на С++. Приложение работает в Windows и Linux, а связь с графическим интерфейсом осуществляется через клиент/сервер.

Каковы плюсы и минусы между Eclipse RCP и Qt?

4b9b3361

Ответ 1

Некоторые плюсы Qt:

  • С++-материал, как правило, будет работать лучше; однако это возможно.
  • Qt является базой Meego, мобильной платформы, спонсируемой Intel, AMD и другими; однако его нынешний импульс кажется мне не слишком высоким. Это означает, что вы также можете создавать приложения для различных мобильных и вообще встроенных устройств.
  • Существует много приложений на основе Qt.
  • Он имеет конструктор WYSIWYG.
  • Хорошо для небольших и крупных проектов, особенно из-за QtQuick, что позволяет создавать небольшие приложения в кратчайшие сроки и почти с нуля знанием о С++
  • Qt имеет потрясающую оболочку в Python под названием PyQt (есть, конечно же, PySide), что позволяет быстро развиваться и создавать прототипы. Из-за этого люди часто используют PyQt (или PySide) для UI-стороны приложения Qt. Разумеется, вы легко можете комбинировать Python и Qt в одном приложении, используя все свои сильные стороны (но также и недостатки). Это позволяет относительно быстрые и плавные циклы разработки даже для крупных проектов.

Некоторые минусы Qt:

Некоторые плюсы Eclipse RCP:

  • Eclipse RCP - это гораздо больше, чем графический набор инструментов:

    • Он поддерживает плагиновую архитектуру, которая может помочь распределить функциональность между различными компонентами (плагинами) и поддерживать контроль над зависимостями между такими компонентами (плагинами). Плагиновая система Eclipse опирается на собственную реализацию спецификации компонентов Java-компонента под названием OSGi.
    • Он обеспечивает механизм для расширения развязанной расширяемости приложения, называемый точками расширения.
  • Есть много плагинов Eclipse, которые вы можете использовать в своем приложении, и многие из них имеют лицензии на распространение, которые являются дружественными к коммерческим продукты.

  • У него есть конструктор WYSIWYG.

Некоторые минусы Eclipse RCP:

  • Eclipse использует специальный инструментарий для окон, который называется SWT; на каждой платформе он опирается на собственный графический слой. В Linux он полагается на Gtk + (хотя это также возможно использовать Motif), что по моему опыту (и другие) имеет проблемы с производительностью, в основном с виджетами, которые обновляются с высокой скоростью. На самом деле многие из нас внедряют элементы Swing в приложения RCP Eclipse для решения проблем с производительностью при сохранении расширяемой архитектуры Eclipse; это, однако, может привести к проблемам интеграции . Там версия SWT, использующая Qt как бэкэнд, но ее включение в Eclipse codebase кажется заторможенным с октября 2010 года.

  • Время запуска (понимаемое как время, прошедшее с момента запуска приложения до появления окна) приложений Eclipse RCP может быть очень длинным.

  • Если вы намерены интегрировать материал С++ с Java с помощью JNI, имейте в виду, что некоторым людям это сложно.

  • В Eclipse много и много ошибок. Eclipse bugzilla - очень полезный ресурс для разработчика RCP.

  • Чем больше вы хотите, чтобы приложение Eclipse RCP выглядело, а поведение и поведение отличались от Eclipse IDE, тем больше проблем вы получите.

  • Развитие Eclipse RCP имеет, по моему мнению, большую кривую обучения.

  • Использование Eclipse RCP для небольших проектов в основном является самоубийством (если только вы не ограничиваете себя созданием плагина или подобного). Он предназначен для средних и крупных и очень крупных проектов из-за сложности его инфраструктуры, требований к ресурсам и вышеупомянутой кривой крутого обучения.

  • Eclipse RCP не для мобильной разработки, потому что... это RCP (Rich Client Platform). Если вы хотите перейти на мобильный телефон, это не для вас.

Обе лицензии на распространение (LGPL/GPL/commercial для Qt, EPL для Eclipse) достаточно гибкие для большинства применений, на мой взгляд. Тем не менее, я не юрист, поэтому я могу ошибаться в этом.

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

Кстати, у меня большой опыт работы в RCL Eclipse, но только теоретические знания по Qt, поэтому я могу быть предвзятым/ошибочным в своих заявлениях.

Ответ 2

Теперь, когда у Qt есть лицензия LGPL, я бы выбрал Qt в любой день недели над Eclipse RCP.

Я использовал оба для создания довольно сложных приложений.

Поскольку вы можете использовать eclipse для разработки С++, я предполагаю, что мы сравниваем в основном swt/jface vs Qt, а не среду разработки eclipse.

Некоторые вещи, которые я заметил, использовали оба:

1) Qt имеет лучшую документацию и образцы

Помимо некоторых примеров с половинной выпечкой в ​​Интернете, я мог бы найти небольшую полезную документацию по eclipse.

2) Qt имеет гораздо больше "профессиональных" пользователей

Есть много профессиональных компаний, которые используют Qt в качестве своего интерфейса. Учитывая три поддержки платформы (Windows, Linux, Mac), она очень гибкая и имеет большую поддержку.

3) Qt имеет тенденцию быть более полным и зрелым -

Используя Eclipse, я заметил, что довольно часто элементы управления и пакеты, которые были доступны, были частично выполнены и не совсем полны. Они, как правило, разрабатывались для кого-то, и только кодировались. Элементы управления Qt были почти всегда полным дизайном.

4) Стиль.

Оба Qt и Eclipse визуализируются с использованием библиотек локальных платформ, поэтому ваш пользовательский интерфейс будет "выглядеть" как другие пользовательские интерфейсы на платформе, на которой вы работаете (например, Linux и Windows). Тем не менее, Qt также предоставляет довольно сложные функции стилизации, которые позволяют вам легко изменять внешний вид любого элемента управления и дают вам больший контроль над внешним видом вашего приложения.

С новым декларативным языком (Qt 4.7. *) вы приближаетесь к уровню управления WPF, который действительно потрясающий.

5) Дизайнер интерфейса:

Qt имеет гораздо более богатый конструктор, который позволяет вам компоновать свою форму и выполнять базовое тестирование без необходимости компилирования какого-либо кода. Дизайнер также дает вам возможность добавлять взаимодействия между элементами управления в вашей форме. Ex. Нажмите эту кнопку - отключите эту опцию

Eclipse также имеет конструктор форм, хотя мой опыт работы с ним ограничен. Я пытался использовать его пару раз с очень ограниченным успехом. Наконец, я закодировал каждую форму вручную через код. Это болезненно.

6) Взаимодействие с существующим исходным кодом

Если у вас нет этой проблемы, вам очень повезло. Поскольку Qt основан на С++, он легко интегрируется с устаревшим кодом C и С++. Интеграция Java и C непросто.

7) Рисование библиотек

Я пробовал кодировать некоторые рисованные фигуры с использованием библиотек swt и был вынужден обойти большие части библиотеки чертежей swt из-за того, что было там. Использование Qt для выполнения чего-то подобного не было проблемой вообще.

8) Модели деревьев и списков

Eclipse действительно предоставляет некоторые хорошие функциональные возможности для распространения данных в деревьях, а также списки и все. Это почти так же хорошо в Qt, хотя немного сложнее настроить.

9) Макет приложения

Eclipse обеспечивает отличную функциональность для управления "представлением (панели док-станции) и" перспективами "(рабочими процессами), которые, если вы решили использовать их, делают жизнь приятной и легкой. Qt требует, чтобы вы сделали это сами. Qt имеет функциональность док-панели, но при создании богатого приложения вы должны сами установить это.

Дополнительное примечание:

Qt также предоставил некоторые дополнительные библиотеки для поддержки таких вещей, как xml и т.д. Таким образом, это помогает немного сократить промежуток между С++ и java для таких вещей.