Вы используете QT и почему Вы используете его? [закрытый]

NullPointerException s - исключения, возникающие при попытке использовать ссылку, которая указывает на отсутствие местоположения в памяти (null), как если бы она ссылалась на объект. Вызов метода по нулевой ссылке или попытка получить доступ к полю нулевой ссылки вызовет функцию NullPointerException. Они наиболее распространены, но другие способы перечислены на странице NullPointerException javadoc.

Вероятно, самый быстрый пример кода, который я мог бы придумать для иллюстрации NullPointerException, be:

public class Example {

    public static void main(String[] args) {
        Object obj = null;
        obj.hashCode();
    }

}

В первой строке внутри main я явно устанавливаю ссылку Object obj равной null. Это означает, что у меня есть ссылка, но она не указывает на какой-либо объект. После этого я пытаюсь обработать ссылку так, как если бы она указывала на объект, вызывая метод на нем. Это приводит к NullPointerException, потому что нет кода для выполнения в местоположении, на которое указывает ссылка.

(Это техничность, но я думаю, что она упоминает: ссылка, которая указывает на null, равна 't то же, что и указатель C, указывающий на недопустимую ячейку памяти. Нулевой указатель буквально не указывает на в любом месте , который отличается от указаний на местоположение, которое оказывается недопустимым.)

27
задан Jonik 27 February 2010 в 10:03
поделиться

8 ответов

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

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

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

11
ответ дан itsmatt 28 November 2019 в 04:49
поделиться

Я использовал QT в течение нескольких лет теперь для коммерческой разработки и был очень доволен им.

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

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

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

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

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

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

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

30
ответ дан David Dibben 28 November 2019 в 04:49
поделиться

Вот некоторые мои За и против с QT:

Профессионалы:
Межплатформенный
я знаю, что этот всегда используется, но после движения назад и вперед между Windows и Linux с QT, удивительно, как мало я должен сделать для подъема и выполнение. Я думаю, что этому помогает факт, я только использую Vim со спокойным Разработчиком.

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

QTestLib
я посмотрел на пару других платформ поблочного тестирования C++ и когда я создал свое тестовое использование QTestLib, это чувствовало себя очень похожим на NUnit (C#), и в течение минут у меня было несколько передающих тестов. Я также заметил, что будет очень легко создать мое собственное непрерывная интеграция среда.

Самый Близкий к Java и.Net в производительности
самая большая вещь я слышу/читаю, что люди сказать о C++, "Я могу быть более продуктивным с Java или.Net". От личного опыта я могу получить прототип приложения, работающего в QT с помощью Vim и спокойного Разработчика перед равномерной нагрузкой Visual Studio или Eclipse. Я также получаю очень похожий набор библиотек в QT, который я имею в.Net или Java и если это не там, я могу усилить существующий код C++ там.


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

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

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


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

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

8
ответ дан Chris Roland 28 November 2019 в 04:49
поделиться

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

, Когда я запустил, мне сказали выбрать мой язык и среду, но межплатформенная поддержка была желательна. Я попробовал QT и Java, и даже дал C# движение только для heck его. Я дал мне два дня для оценки каждой опции.

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

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

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

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

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

я также нашел, что поддержка Trolltech была довольно хороша. Я повысил несколько ошибок на QT, одна из которых была зафиксирована и выпущена, пока я все еще работал над проектом (только 6-месячное задание).

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

я не использовал Джамби, так не может прокомментировать.

5
ответ дан Rodyland 28 November 2019 в 04:49
поделиться

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

3
ответ дан Martin Beckett 28 November 2019 в 04:49
поделиться

Я использовал QT больше двух лет теперь.

Вещи, которые я люблю на QT:

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

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

3
ответ дан Thomas Koschel 28 November 2019 в 04:49
поделиться

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

0
ответ дан adum 28 November 2019 в 04:49
поделиться

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

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

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

0
ответ дан Greg Domjan 28 November 2019 в 04:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: