Что должно я выбирать: GTK + или QT? [закрытый]

Можно выполнить итерации по всему дереву средств управления рекурсивно и проверить приложенное свойство Validation. HasErrorProperty, затем сфокусируйтесь на первом, который Вы находите в нем.

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

86
задан unwind 11 December 2009 в 11:05
поделиться

8 ответов

это зависит от того, что вы используете, но в zip-библиотеке может быть функция, которая проверяет, является ли файл zip-файлом. что-то вроде is_zip, test_file_zip или что-то в этом роде ...

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

и декларативный пользовательский интерфейс .

GTK + не предлагает так много, хотя вы можете использовать вместе с ним Clutter .

Если вы специально изучаете DB, XML ( GTK + имеет синтаксический анализатор для подмножества XML) и потоковую (GTK + имеет GLib ) функции, тогда Qt предложит все, что в QtSql , QtXml и QtConcurrent .

В целом, я бы сказал, что Qt - верный выбор. Но GTK + тоже очень способный.

Я не уверен, что вы получите кристально ясный ответ на свой вопрос, который объясняет, почему некоторые люди по-прежнему предпочитают Gnome KDE или наоборот. Выберите, что лучше всего подходит для вас.

PS: Я планирую также настроить таргетинг на Symbian, а затем перейти на Qt.

РЕДАКТИРОВАТЬ: Что-то, что также хорошо работает с Qt, - это QtWebView : он добавляет Chromium в ваше приложение Qt для отображения веб-контента. Другие встраивают веб-контент в свои приложения, используя, например, Awesomium или Berkelium.

90
ответ дан 24 November 2019 в 08:00
поделиться

Я раньше использовал GTK +, QT и wxWidgets. Вот краткое изложение:

Для моего первого проекта межплатформенного пользовательского интерфейса я решил использовать wxWidgets в основном потому, что в то время лицензия не была такой же строгой, как у QT (QT была GPL и только для Linux), и у нее был интерфейс для конкретной платформы. (в отличие от GTK). Проект работал хорошо, но было довольно много сбоев, заставлявших его правильно скомпилировать и запустить на других платформах - иногда некоторые события запускались по-другому и тому подобное. Также GDI в wxWidgets был довольно медленным.

Затем я использовал GTK для другого проекта на python. Для этого я использовал привязки python, и все прошло более-менее гладко. Мне не очень понравилось, что пользовательский интерфейс не t выглядит нативно в Windows и Mac, а также, когда вы запускаете приложение GTK +, оно всегда выводит отладку множества КРИТИЧЕСКИХ предупреждений, которые можно игнорировать. : S

Наконец, я сделал очень простой проект QT теперь, когда его приобрела Nokia, и он оказался великолепным. Лучшее из трех. Во-первых, если вы не старый школьник, предпочитающий VI или Emacs, QtCreator великолепен. Я очень люблю VI и использую его в течение многих лет, но я предпочитаю QtCreator для проектов C ++ QT. Что касается библиотеки, мне также очень понравилась документация и предоставленные API. QT имеет концепцию слотов и сигналов, которые вводят новые ключевые слова C ++ и препроцессор. По сути, после прочтения учебника вы легко получите его и полюбите его. Сейчас я занимаюсь разработкой для iPhone, и это немного похоже на парадигму пользовательского интерфейса Cocoa / Interface Builder.

Резюме: Я бы выбрал QT без всяких сомнений.

42
ответ дан 24 November 2019 в 08:00
поделиться

Это, вероятно, зависит от того, что вы хотите сделать. Я бы порекомендовал Qt, потому что это больше, чем графический интерфейс, в нем есть хорошие привязки к Python (как и Gtk), а сами библиотеки графического интерфейса (субъективно говоря) более приятны, чем Gtk.

Gtk, с другой стороны, более распространен в мире Linux, поэтому вы, вероятно, можете получить дополнительную помощь в Интернете. Причина широкого распространения Gtk, вероятно, больше связана с Gnome и Ubuntu, чем с техническими достоинствами, но если вы хотите, чтобы ваше программное обеспечение хорошо сочеталось с этими двумя, вам будет легче добиться этого с Gtk.

9
ответ дан 24 November 2019 в 08:00
поделиться

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

Я бы рекомендовал его вместо GTK +.

7
ответ дан 24 November 2019 в 08:00
поделиться

Просто добавление преимуществ QT к другим ответам .. QT имеет отличную документацию, собственный создатель IDE и GUI и расширяет C ++ с помощью некоторые новые концепции, такие как слоты / сигналы (в основном события).

Я не разработчик GTK, поэтому я не могу сравнивать их с миром GTK: (

3
ответ дан 24 November 2019 в 08:00
поделиться

Я никогда не использовал GTK, но по моему личному опыту использования Qt:

Это гораздо больше, чем простой графический интерфейс. Это целая структура приложения. Раньше я думал об этом как о библиотеках Java для C ++. Он предоставляет все, что вы упомянули - базу данных, XML, сети и потоки и многое другое. Он также предоставляет такие вещи, как контейнеры и итераторы, и аналоги для ряда расширенных библиотек.

Больше всего меня впечатлило, когда я начал использовать Qt, это чрезвычайно обширная документация. Вы получаете программу под названием Qt Assistant, которая предоставляет полностью проиндексированную документацию по API с возможностью поиска на вашем рабочем столе, а также многочисленные примеры кода и учебные пособия. Я обнаружил, что каждый раз поиск в Интернете информации об API имеет большое значение. Очень быстрый доступ, когда вам нужно запомнить подпись метода.

Я не уверен, что встречается чаще всего; это, вероятно, трудно измерить точно. Оба они, безусловно, популярны. Поскольку Gnome является рабочим столом Ubuntu по умолчанию, а Gnome находится поверх GTK, очевидно, что он широко используется. Конечно, KDE тоже очень популярен. Nokia активно продвигает Qt в мобильном пространстве - их Maemo OS, используемая, например, на новом N900, скоро перейдет на Qt в качестве инструментария по умолчанию (в настоящее время это GTK). Я считаю, что Qt также скоро станет набором инструментов по умолчанию. для Symbian OS.

Я не использовал Qt Creator, но слышал о нем много хорошего. Это IDE C ++ с очевидной тесной интеграцией с Qt. Он также имеет поддельную эмуляцию vim, что всегда приятно, если вам нравятся подобные вещи!

Qt использует qmake для конфигурации сборки. Я нашел это намного приятнее, чем писать свои собственные make-файлы. Я не знаю, что GTK использует для сборки.

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

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

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

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

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

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

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

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

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

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

У него действительно потрясающая документация, хорошая IDE и загруженные форумы. С его помощью вы сможете очень быстро создавать приложения на C ++, особенно с QML, входящим в 4.7.

У него действительно потрясающая документация, хорошая IDE и загруженные форумы. С его помощью вы сможете очень быстро создавать приложения на C ++, особенно с QML, входящим в 4.7.

24
ответ дан 24 November 2019 в 08:00
поделиться

Также похоже, что Nokia собирается использовать Qt везде, как на Maemo

.
1
ответ дан 24 November 2019 в 08:00
поделиться

Qt. Он не только объектно-ориентированный, это "хороший" объектно-ориентированный. Он основан на "подмножестве" C ++, который не полагается на безвестность C ++ (но вам разрешено придерживаться их, если вам нравится мазохизм;)).

Сейчас, когда Nokia купила его, он набирает обороты (на самом деле Nokia купила его ~ 2/3 года назад). Он будет во всех мобильных устройствах Nokia И Intel (смартфоны, нетбуки, планшеты).

Это основа KDE, так что она очень зрелая, но она разработана очень гибко, что позволяет СЕГОДНЯ поддерживать все новейшие «крутые штуки», более-то-просто-GUI фреймворк должен иметь.

Сделайте это.

3
ответ дан 24 November 2019 в 08:00
поделиться
Другие вопросы по тегам:

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