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

GTK + или Qt под Windows

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

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

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

Ответ 3

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

Ответ 4

my $0.02:

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

Ответ 5

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

Ответ 6

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

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

Ответ 7

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

Ответ 8

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

Ответ 9

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

Ответ 10

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

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