GTK + или Qt под Windows

Мне было интересно, какой из них я должен рассмотреть, нужно ли мне использовать программное обеспечение на обеих платформах, WIN и Linux, и почему?

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

Eggs McLaren 14.10.2008 05:01

В моем ответе, который по какой-то причине был отклонен, говорилось, что компилировать GTK в Windows сложно. Очень много времени. Не рекомендую. Qt - это двухчасовая компиляция, которая обычно не вызывает проблем. Хотя распространение C++, скомпилированного с помощью Visual Studio 2005+, имеет свои проблемы.

mxcl 20.10.2008 18:32

Что не так с спрашивающим Майком? Его аватар стал серым.

Tyler Long 14.12.2011 14:16
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
22
3
11 370
10

Ответы 10

Они оба прекрасные инструменты. Я бы основал свое решение на лицензировании. Qt требует, чтобы вы платили за лицензию, если вы используете ее в коммерческом продукте, в отличие от GTK.

Конечно, это уже не так.

mxcl 09.02.2009 00:03

GTK + можно использовать почти во всех языках программирования, в C++ (с использованием gtkmm), в C (gtk +), в C# (с Gtk #), в Python (PyGtk). За GTK стоит Mono Framework - отличная реализация .NET Framework для кроссплатформенных целей. Если вы хотите использовать Gtk #, у вас есть отличная IDE (MonoDevelop) с очень мощным дизайнером графического интерфейса. Вы можете взглянуть на www.mono-project.org. Но все равно зависит от того, что вы хотите построить, вы ищете только набор инструментов GUI или всю структуру? И логика сигналов / слотов одинакова в Gtk + и Qt, но если вы используете Gtk #, они преобразуются в парадигме делегатов / событий.

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

mxcl 09.02.2009 00:05

@Max PyGTK и GTK # поддерживаются для разработки приложений Gnome, поэтому я ожидаю, что они будут иметь хороший уровень поддержки (эквивалент самого GTK +).

Michael Ekstrand 25.06.2010 23:21

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

mxcl 27.06.2010 17:12

Говорят, что моно активно не развивается. Если моно умирает, умирает и GTK #.

Tyler Long 14.12.2011 14:20

мои 0,02 доллара:

Я использовал Qt постоянно в течение последних 4 лет, и это мой любимый инструментарий из всего, что я пробовал (Win32, MFC, Borland, Java, GTK). Я использовал GTK в течение нескольких недель, чтобы опробовать его, и мне это не понравилось. В основном это было потому, что я считаю неудобным использовать C вместо C++ для приложений с графическим интерфейсом пользователя на ПК ... Я тоже выполняю встроенные функции, и я бы никогда не использовал C++ на 8051, но для большого приложения с графическим интерфейсом я предпочитаю его. . Если вы собираетесь попробовать GTK, я бы посоветовал заглянуть в GTKmm, хотя сам никогда не использовал его.

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

Оба являются хорошими инструментами, у которых есть свои преимущества и недостатки.

Одно отличие - это язык реализации. Qt находится на C++, а GTK + - на C. Однако GTK + имеет привязки для многих, многих других языков (perl, python, C++, .NET и т.д.), так что это не большая проблема.

Преимущество Qt в том, что он предлагает немного более широкий набор встроенных функций (xml, доступ к базе данных, сетевое программирование, openGL и т. д.). GTK + имеет практически все эти вещи на своей орбите (например, libxml2, librsvg, libsoup, libgda и т. д.), Но они не столько единый согласованный пакет, как Qt.

Моя личная рекомендация - использовать gtkmm, привязки C++ для GTK +. Он предлагает более удобный объектно-ориентированный язык для программирования и обеспечивает почти такую ​​же производительность, как при использовании GTK + из C. (Отказ от ответственности: я участвую в gtkmm).

И, конечно же, теперь Qt тоже LGPL.

mxcl 09.02.2009 00:06

Убрал устаревший абзац про лицензию.

mikerobi 05.06.2011 06:46

Однако выглядит ли GTK родным для Windows? Также не зависит ли это от X-сервера? Я видел порт Deluge на Windows, и это выглядело ужасно.

sashoalm 22.11.2012 12:09

Упаковка GTK и его зависимостей в Windows сама по себе является полноценным проектом. Qt гораздо проще распространять, поскольку он не имеет зависимостей, которые не поставляются с Windows.

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

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

Есть универсальный установщик PyGTK 2.24. Я попробовал и работает, и последние версии GTK кажутся намного лучше и имеют встроенную поддержку в Windows. Что делает его сопоставимым с Qt в Windows.

saeedgnu 09.06.2011 15:02

Если только я не люблю GTK на * nix, в основном из-за его дизайна.

saeedgnu 09.06.2011 15:04

Три дополнительных момента в пользу Qt:

  1. Ваш проект нет должен быть GPL; есть много других лицензий с открытым исходным кодом, доступных в Qt GPL Exception, включая BSD и LGPL.
  2. Тема Qt по умолчанию в Windows намного лучше справляется с вписыванием, чем тема Wimp в GTK.
  3. Если вы захотите позже поддерживать Mac, вам будет намного проще работать с Qt.

GTK + поддерживается на Mac или, по крайней мере, приближается.

Mark Kegel 06.11.2008 01:01

Qt поддерживается на Mac, Windows, Linux и других встраиваемых платформах в сокращенном виде.

Harald Scheirich 10.11.2008 22:26

С Gtk.org: «GTK + находится под лицензией GNU LGPL 2.1, что позволяет разрабатывать как бесплатное, так и несвободное программное обеспечение с GTK + без каких-либо лицензионных сборов или лицензионных отчислений».

Piotr Zurek 12.05.2009 09:02

Я бы предпочел Qt. Как и сегодня, Qt имеет открытый исходный код и бесплатен под более либеральной лицензией LGPL. Qt лучше портирован для Windows и выглядит более родным, чем GTK. Например, GIMP в окнах выглядит очень странно, потому что большинство его диалогов не являются диалогами Windows. Qt может использовать собственные диалоговые окна Windows, такие как «Открыть / Сохранить», что позволяет ему лучше восприниматься как фреймворк. И да, Qt - это фреймворк, а не только виджет GUI. Нет, я не рекламирую Qt здесь, так как Qt имеет некоторые странности для пользователя Windows с точки зрения разработки, например, Qt основан на макете, в то время как MFC / .NET основан на привязке, а менеджеры макетов Qt иногда выглядят странно. Но если мне придется выбирать между GTK и Qt, я выберу Qt. Кроме того, теперь Qt поставляется с очень хорошей IDE, Qt Creator, которая сейчас является моей IDE C / C++ по умолчанию для всех типов проектов (поскольку Qt Creator может использоваться как таковой).

Qt 5.0 выиграла войну. Я не большой поклонник C++ (предпочитаю простой старый C), но должен признать, что структура Qt потрясающая. Попробуйте написать программу с графическим интерфейсом пользователя с помощью GTK, которая работает в OSX, Linux, Windows (а вскоре и на iOS и Android) с собственным интерфейсом ... Удачи!

Я рекомендую использовать Qt, потому что:

  • Он кроссплатформенный и охватывает широкий спектр операционных систем (включая мобильные).
  • Он имеет открытый исходный код и быстро становится лучше
  • У него хороший дизайнер графического интерфейса и очень способная IDE (Qt Creator).
  • Дизайн API отличный и простой в использовании.
  • У него отличная документация, которую легко читать.
  • Он имеет систему перевода Qt, которая позволяет вам иметь многоязычное приложение.
  • Система компоновки графического интерфейса, в которой размер виджетов изменяется в соответствии с компоновкой, значительно упрощает работу.
  • QML дает вам возможность создавать фантастический графический интерфейс с великолепной графикой и анимацией.
  • Он имеет отличную поддержку сетей и подключения (сокеты, SSL, www, IPC, ...)
  • В нем есть QTestLib для тестирования кода
  • У него много языковых привязок, если вы не хотите использовать C++

Другие вопросы по теме