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

Сравнение инструментов разработки GUI для Linux

Я новичок в области проектирования и разработки GUI. У меня есть некоторый опыт, но с Visual Basic.

Я хотел бы разработать достаточно полное (хотя и не самое современное) приложение GUI на linux на основе приложения командной строки. что у меня есть. Сделав некоторый поиск в Google, я обнаружил, что есть в основном три хорошего (или, возможно, это то, что я чувствую) способы достижения этой цели:

  • GTK + библиотека с GLADE в качестве дизайнера
  • Qt-библиотека с Qtdesigner как конструктор
  • Java-свинг с Netbeans

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

  • Лицензирование: я бы не смог выложить слишком много баксов здесь...
  • Поддержка языка программирования: я знаю C/С++ и очень мало Java.
  • Простота обучения/использования
  • Гибкость и мощность: было бы очень приятно, если бы большинство (если не все) функций, которые мне нужны, были доступны в основной библиотеке.
  • (Отсутствие) дополнительных зависимостей: Рассуждая так же, как и номер 4
  • Внешний вид
  • Поддерживаемые платформы/переносимость (усилие, необходимое для переключения платформы)

Любые идеи по вышеуказанным темам будут стоить их веса в золоте (я бы не хотел, чтобы через месяц я понял, что я выбрал неправильный инструмент для своей работы). Существуют ли какие-либо другие инструменты, более подходящие для моей цели, о которых я не знаю?

Наибольшую помощь могли бы дать ответы на пустые вопросы.

EDIT: Хорошо, поэтому я, наконец, ушел с Qt. Просто потому, что он легче учиться и выглядит более переносимым, чем GTK + (ко мне, конечно).

4b9b3361

Ответ 1

Qt - ваш лучший выбор.

  • Статус лицензии Qt

    Nokia предоставляет Лицензиату неисключительный, безвозмездное право воспроизводить и распространять форму объектного кода Распространяемые материалы для выполнения на указанных платформ.

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

  • Он написан в/для С++

  • Это не так сложно узнать.
  • Библиотека (хотя и модульная) содержит все необходимое для разработки полномасштабного графического интерфейса пользователя, а также некоторых дополнительных (XML, сетей...)
  • Я не знаю об этом, извините, но я не думаю, что есть какие-либо зависимости (на стороне клиента).
  • Внешний вид и внешний вид являются родными для среды, для которой приложение скомпилировано (это выглядит Windows и ощущается в Windows, OSX выглядит и ощущается на OSX).
  • Qt поддерживается на широком спектре настольных сред

Ответ 2

Чтобы сделать это для GTK:

  • Лицензия LGPL.
  • Написан на языке C, но можно использовать практически любой язык программирования, включая С++, Python, Javascript, Haskell и т.д. Недавно был разработан новый язык программирования Vala, который имеет встроенную поддержку объектов, сигналов и свойств GTK. Его синтаксис очень похож на С#, и его цель - обеспечить очень быструю разработку приложений с использованием GTK. (Это потому, что использование его в исходном C имеет тенденцию создавать очень подробный код.)
  • Если вы понимаете объектно-ориентированные принципы (это не обязательно все, кто прошел курс Java в университете), тогда это легко изучить.
  • Библиотека разделена на две основные части: GLib, базовую библиотеку и GTK, библиотеку GUI. В GLib есть много функций, которые вам понадобятся для разработки приложений: все виды структур данных, потоки, регулярные выражения, парсер для ключей значений, XML-подобный парсер разметки (для полного XML вам нужна библиотека libxml2), синхронный ввод-вывод, сети. GTK содержит все графические.
  • Раньше было, что довольно много приложений имели весь набор библиотек GNOME в качестве зависимости, но это уже не так, поскольку многие полезные функции были перенесены в GLib и GTK. Вы должны иметь возможность писать полнофункциональное приложение без каких-либо дополнительных зависимостей.
  • Внешний вид зависит от платформы. В GNOME GTK в основном определяет внешний вид. В Windows естественный внешний вид эмулируется почти идеально. На OS X не так много.
  • В Windows и OS X требуется некоторое время, чтобы настроить библиотеки правильно. OS X - это особенно боль в заднице, где у вас есть выбор между запуском сервера X11 или использованием более сложного базового блока Quartz. Qt, вероятно, проще в этом отношении. Тем не менее, ваш код приложения полностью кросс-платформенный и поэтому не требует каких-либо портирования для работы в любой из этих систем.

Надеюсь, я точно представлял вам плюсы и минусы.