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





Они оба прекрасные инструменты. Я бы основал свое решение на лицензировании. Qt требует, чтобы вы платили за лицензию, если вы используете ее в коммерческом продукте, в отличие от GTK.
Конечно, это уже не так.
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. Все, что указано выше, не имеет гарантий обслуживания или надежности. Вообще говоря.
@Max PyGTK и GTK # поддерживаются для разработки приложений Gnome, поэтому я ожидаю, что они будут иметь хороший уровень поддержки (эквивалент самого GTK +).
Что ж, тогда вы обязательно будете расстроены и удивлены, когда обнаружите, что это не так.
Говорят, что моно активно не развивается. Если моно умирает, умирает и GTK #.
мои 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.
Убрал устаревший абзац про лицензию.
Однако выглядит ли GTK родным для Windows? Также не зависит ли это от X-сервера? Я видел порт Deluge на Windows, и это выглядело ужасно.
Упаковка GTK и его зависимостей в Windows сама по себе является полноценным проектом. Qt гораздо проще распространять, поскольку он не имеет зависимостей, которые не поставляются с Windows.
Qt с самого начала был кроссплатформенным. GTK не всегда был кроссплатформенным. Такие фундаментальные решения формируют общий дизайн и, на мой взгляд, должны быть приняты до написания кода.
Я хотел бы прокомментировать больше, но я бы склонился к предположениям, о двух вышеупомянутых вещах я знаю наверняка.
Есть универсальный установщик PyGTK 2.24. Я попробовал и работает, и последние версии GTK кажутся намного лучше и имеют встроенную поддержку в Windows. Что делает его сопоставимым с Qt в Windows.
Если только я не люблю GTK на * nix, в основном из-за его дизайна.
Три дополнительных момента в пользу Qt:
GTK + поддерживается на Mac или, по крайней мере, приближается.
Qt поддерживается на Mac, Windows, Linux и других встраиваемых платформах в сокращенном виде.
С Gtk.org: «GTK + находится под лицензией GNU LGPL 2.1, что позволяет разрабатывать как бесплатное, так и несвободное программное обеспечение с GTK + без каких-либо лицензионных сборов или лицензионных отчислений».
Я бы предпочел 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, потому что:
Я больше смотрю, насколько сложно будет компилировать под окнами каждый из них? Я знаю, что QT довольно похож на его компиляцию под Linux. Также какой из них займет больше времени на кодирование однотипных приложений?