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

Вы используете Qt и почему вы его используете?

Pros. и против? как долго вы его используете? Как насчет джамби?

4b9b3361

Ответ 1

Я использовал Qt в нескольких проектах, которые я делал на С++ на нескольких платформах в течение семи лет. Я думаю, что это работает очень хорошо, и определенно было быстрее для меня разработать достойное приложение для графического интерфейса на Mac, чем прокладывать язык, который я не знал (Objective-C) в то время.

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

Я никогда не использовал джамби.

Ответ 2

Я использую Qt уже несколько лет для коммерческого развития и очень доволен этим.

Одна из хороших вещей с Qt заключается в том, что он предоставляет большой набор библиотек, а также материал GUI (например, синтаксический анализ XML, потоки, сетевые технологии), все в последовательном стиле и все многоплатформенные. Это означает, что нам редко приходится использовать другие библиотеки, хотя для некоторых вещей мы используем boost.

Другим очень важным фактором для нас была интернационализация. В предыдущем приложении на основе MFC нам нужно было поддерживать 2 локализованные версии для двух поддерживаемых нами языков. В нашем приложении на основе Qt у нас есть только одна версия.

  • Система перевода Qt с использованием лингвиста проста в использовании и облегчает поддержку нескольких языков (конечно, вам все равно придется переводить строки, которые являются большой работой!)
  • Система компоновки графического интерфейса, в которой виджеты изменяются в соответствии с макетом, делает все намного проще. На разных языках длина строк различна. С виджетами фиксированного размера (например, MFC) каждый диалог должен быть скорректирован для каждого языка, иначе части ярлыков будут отключены. С Qt они изменяют размеры. Конечно, бывают случаи, когда это не работает точно, но все еще облегчает процесс.
  • QString делает все в Юникоде и очень легко обрабатывает конверсии из разных кодеков.

Одна вещь, которая была очень ценной, - это доступ к источнику, хотя это, конечно, не уникально для Qt. В некоторых случаях способность проверять источник Qt объясняла какое-то странное поведение или давала понять, как добиться чего-то.

Мы обнаружили несколько ошибок в Qt, некоторые из которых были исправлены после сообщения Trolltech. В других случаях они предложили работу. Все они были довольно неясными и не оказали существенного влияния на наше развитие.

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

Я тоже не использовал Джамби.

Ответ 3

Вот некоторые из моих плюсов и минусов с Qt:

Плюсы:
Кросс-платформенная
Я знаю, что это всегда используется, но после перехода между Windows и Linux с помощью Qt это удивительно, как мало мне нужно, чтобы встать и работать. Я думаю, этому способствует тот факт, что я использую только Vim с Qt Designer.

QMake
Это один из моих любимых аспектов Qt. После работы в wxWidgets, FLTK и т.д., Я так устал от общения с различными системами сборки, и я не хочу вручную создавать свои make файлы. В настоящее время я использую CMake для чего-либо другого, кроме Qt, но я думаю, что я медленно перемещаю Qt на CMake. Однако это так просто, чтобы начать работу с QMake.

QTestLib
Я посмотрел на пару других модулей тестирования модулей С++, и когда я создал свои тесты с помощью QTestLib, он очень похож на NUnit (С#), и через несколько минут у меня было несколько проходящих тестов. Я также заметил, что было бы очень легко создать собственную среду непрерывная интеграция.
Ближайшие к Java и .Net в производительности
Самое большое, что я слышу/читаю, говорят о С++: "Я могу быть более продуктивным с Java или .Net". Из личного опыта я могу получить прототип приложения, работающего в Qt, с помощью Vim и Qt Designer, до того, как Eclipse или Visual Studio даже загрузится. Я также получаю очень похожий набор библиотек в Qt, который у меня есть на .Net или Java, и если он там отсутствует, я могу использовать существующий код на С++.


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

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

Блокировка поставщика

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


Я думаю, что я закончил на данный момент:). О, я не использовал Jambi, но мне действительно интересно сделать несколько проектов прототипов, чтобы выяснить, насколько легко использовать плагин, разработанный на С++ с Jambi. Особенно, используя Jambi в качестве веб-интерфейса с плагинами С++.

Честно говоря, я не много читал об этом, так что это может быть невозможно или очень легко.

Ответ 4

Я использовал Qt в предыдущем задании. У меня был только самый короткий контакт с Qt за несколько лет до этого, так что я был довольно Qt newb.

Когда я начал, мне сказали выбрать язык и среду, но кросс-платформенная поддержка была желательной. Я пробовал Qt и Java, и даже дал С# просто для этого. Я дал себе два дня, чтобы оценить каждый вариант.

Возможно, я был слегка предвзятым с моей историей как разработчиком С++, но после того, как потратил время на каждый вариант, Qt был единственным, кто показал какие-либо намеки на то, что он полезен без длинной кривой обучения.

Документация, содержащаяся в Qt и примерах приложений, очень упростила опытный разработчик, но начинающий Qt очень быстро встал и работал. У меня был прототип UI/макеты конечного приложения, выполненного к концу моего пробного периода. С Java/Eclipse, Java/SunStudio и С#/VS.net у меня возникли проблемы с получением чего-то нетривиального события за это время.

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

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

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

Я также нашел поддержку Trolltech довольно неплохой. Я поднял пару ошибок на Qt, один из которых был исправлен и выпущен, пока я все еще работал над проектом (всего 6 месяцев).

Единственный минус, который я могу вспомнить, это трудность в отладке Qt-объектов (с использованием VS) - есть плагин Qt для VS, который может проверять объекты Qt, но я использовал бесплатную версию VS, и плагины не работают для нее, Но это не было ошибкой Qt.

Я не использовал jambi, поэтому не могу комментировать.

Ответ 5

В С++ ваши другие альтернативы - MFC и wxWidgets. QT/wxWidgets в значительной степени является личным предпочтением. Я действительно думаю, что QT - это чистый дизайн с хорошей документацией.
QT стоит около одного месяца зарплаты разработчика, если вы не используете его для GPL.

Ответ 6

Я использую Qt более двух лет.

Вещи, которые мне нравятся на Qt, следующие:

  • Простое программирование GUI (по сравнению с MFC), Qt Designer
  • Хорошие классы контейнеров
  • Хорошая структура графических сцен
  • Отличная документация с полезными примерами
  • Поддержка перевода
  • Хорошая техническая поддержка.

Я могу настоятельно рекомендовать Дни разработчиков Qt. Если у вас есть шанс принять участие, сделайте это! Там много приятных и интересных разговоров.

Ответ 7

Qt - очень хорошая библиотека, но у нее есть дорогостоящая лицензия разработчика на место, поэтому она не всегда полезна для всех проектов.

Ответ 8

Не используйте его, однако...

Pro: QT имеет факультативную трехфазную компоновку, где WX разрешает только 2 (я считаю, что они планируют сделать 3 фазы, пока они еще не работали).

Одной из больших проблем с использованием макетов является статический текст и упаковка. WX спрашивает, насколько велика ваша минимальная ширина/высота и части экрана, QT имеет возможность сказать, насколько вы хотите, насколько высока вы должны быть, если ваш X широкий. Это позволяет вам лучше выразить поток страницы.