Qt Jambi против SWT для кроссплатформенной разработки GUI - PullRequest
11 голосов
/ 10 февраля 2009

В настоящее время я участвую в проекте по разработке приложений, преимущественно для Linux (Fedora 10). Однако позже может случиться так, что нам придется портировать эти приложения на Mac OS X и Windows, и мы не хотим, чтобы нас застали врасплох, выбрав неправильный инструментарий GUI. *

По ряду унаследованных причин мы заблокированы с помощью Java. Мы находимся в процессе выбора между использованием Qt Jambi и SWT для GUI. У меня нет большого опыта использования любого из них, поэтому я делаю несколько маленьких прототипов, чтобы попытаться почувствовать их. Пока (только разработка под Linux) между ними нет большой разницы. Тем не менее, есть предел глубины, которую я могу пройти за короткое время. Вот почему я прошу о помощи.

Интересующие нас особенности:

  • Безрамные окна

  • окна нестандартной формы (т.е. не прямоугольные)

  • эстетично

Есть ли у кого-нибудь опыт и / или понимание этих двух библиотек, которые могут сбить нас с толку позже?

  • Agile программисты, несомненно, будут прыгать на фразе «может быть ... позже» и говорить, что нам не следует об этом беспокоиться. Однако, в отсутствие других решающих факторов между наборами инструментов, будущие варианты расширяемости подойдут. Я обещаю не писать какой-либо кроссплатформенный код, пока мне не придется :)

Обновление 11 февраля: Спасибо за отличные ответы. Для тех, кому любопытно, мы пойдем с Джамби. В основном меня покорила функциональность таблиц стилей, поскольку они облегчают многие пользовательские задачи по созданию формы виджетов, которые нам нужно сделать. Набор примеров Qt показал, что безрамные окна нестандартной формы действительно работают на разных платформах, поэтому мы не должны отставать. Выпуск LGPL был причиной, по которой мы вообще рассматривали Jambi:)

Ответы [ 5 ]

8 голосов
/ 10 февраля 2009

Я согласен с Уксусом: не исключаю Swing. Я разработал как с Swing, так и с SWT, но не с Qt. С Swing ваш код будет автоматически кроссплатформенным. С SWT ваш код кроссплатформенный с небольшими усилиями, хотя и не такими большими. Собираетесь ли вы реализовать локальное приложение, апплет или приложение Web Start?

Преимущество SWT состоит в том, что он использует все нативные виджеты. (знакомый стиль) Недостаток SWT состоит в том, что он использует все нативные виджеты. (не так много виджетов, как у Swing). Является ли это преимуществом или недостатком, зависит от того, что вы делаете и каковы ваши цели. Это означает, что у Swing больше виджетов. Тем не менее, SWT делает несколько вещей, которые Swing не делает (или вообще) - например, запускает системный браузер системы и выполняет сценарии JavaScript в этом браузере.

Если вы рассматриваете SWT, тщательно обдумайте это. Если у вас есть определенные потребности (например, выполнение JavaScript в окне браузера, которое было запущено вашим приложением), то это может быть вашим лучшим выбором. Однако, если Swing может полностью удовлетворить ваши потребности, это может быть лучшим выбором.

Надеюсь, кто-то еще может предоставить информацию о Qt Jambi.

Обратите внимание, что поддержка должна быть рассмотрена в вашем решении. С SWT существует меньшее сообщество, поддерживающее его. Со Swing, более крупным сообществом, но это не значит, что исправления быстрее попадут в разрабатываемый выпуск. В Qt Jambi и SWT, если ошибка устранена, вы просто распространяете обновленные библиотеки вместе с вашим приложением. С Swing вам придется ждать обновления JRE. Ни один из них не обязательно является нарушителем, но это нужно учитывать.

Лицензионные сборы могут или не могут быть рассмотрением. SWT и Swing, разумеется, не имеют лицензионных сборов. Jambi, о ​​котором я не знаю, но это может зависеть от вашего предполагаемого использования - например, вы распространяете приложение GPL или коммерчески лицензированное.

Удачи.

4 голосов
/ 13 марта 2009

Вы знаете, что выпуск Qt Jambi прекращен после выпуска 4.5 в этом месяце? Это не делает его плохим выбором. У Qt есть другие языковые привязки, поддерживаемые сообществом, которые находятся вне контроля Trolltech.

http://www.qtsoftware.com/about/news/preview-of-final-qt-jambi-release-available

4 голосов
/ 10 февраля 2009

У меня нет опыта работы с SWT, но я также работал с Jambi / Qt, Swing и GTK. По моему мнению, единственная проблема с Qt / Jambi - это лицензирование (вы должны либо опубликовать свой софт под GPL, либо купить коммерческую лицензию). Вы не можете начать писать программное обеспечение бесплатно, а затем «посмотреть, что произойдет». Вы должны быть уверены, что ваше программное обеспечение будет успешным, потому что вы должны покупать лицензии. Во многих случаях это не так.

Привет.

Упс, я пропускаю эти комментарии, спасибо за ответ. Это отличные новости! Хороший ход от Nokia.

@ cursa, о котором не говорилось, поэтому обратите внимание, что Qt / Jambi - это больше, чем просто набор инструментов для виджетов. У вас есть классы для работы в сети, работы со строками (вместе с движком регулярных выражений), мьютексов, 2-мерной векторной и растровой графики, openGL и многих других. Это дает реальный импульс для разработки приложений.

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

0 голосов
/ 14 октября 2009

Я бы не стал исключать SWT, так как это большой успех в мире затмений. Я пользуюсь им с радостью около 6 лет, и мне никогда не приходилось прибегать к качели.

0 голосов
/ 17 февраля 2009

Я бы не рекомендовал SWT. SWT - плохо спроектированная библиотека с большим количеством взломов и ошибок. Вы будете все время искать обходной путь для простых UI-задач

...