Должен ли человек, плохо знакомый с оконными приложениями, изучать X, GTK + или что? - PullRequest
4 голосов
/ 17 декабря 2009

Скажем, факторы для оценки выбора - библиотека доступных виджетов, наклон кривой обучения и степень мобильности (платформы, на которых он работает). Что касается языковой привязки, я использую C ++.

Спасибо!

Ответы [ 11 ]

11 голосов
/ 17 декабря 2009

Pure X довольно хардкорный в наши дни, и не очень портативный. В основном, есть три основных инструментария:

  • GTK + (и оболочка C ++ GTKmm)
  • Qt
  • WxWidgets

, которые довольно сопоставимы, так что выбирать - дело вкуса. Все три работают на трех основных операционных системах, хотя GTK + на Mac и Windows немного неловко.

11 голосов
/ 17 декабря 2009

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

8 голосов
/ 17 декабря 2009

Мой личный фаворит: Qt . Он кроссплатформенный, он очень интуитивно понятный, он тщательно документирован, есть привязки для многих языков (оригинал - C ++), и на самом деле развлекаться с ним интересно.

3 голосов
/ 17 декабря 2009

Поскольку вы запрашивали библиотеку виджетов для C ++, я бы предложил QT, созданный для этого языка программирования; GTK тоже хорош, но он был создан для C (столько же библиотек, созданных для проекта GNU, который дает привилегии C против C ++).
Никто не использует X непосредственно при создании приложения; единственные люди, которые работают непосредственно с X, это те, кто создает новую библиотеку виджетов, как уже сообщали другие люди здесь.

3 голосов
/ 17 декабря 2009

Если вы не планируете писать свой собственный инструментарий пользовательского интерфейса, на самом деле больше нет смысла использовать X напрямую. Слишком тяжело, слишком много работы.

В Linux у вас есть два основных варианта - GTK и Qt. Оба работают нормально. Qt лучше работает как нативный инструментарий C ++, чем сам GTK, хотя GTKmm является достойной оболочкой для C ++. GTK может использоваться на большем количестве языков, чем Qt, но это не имеет значения, если вы все равно используете C ++.

Оба являются кроссплатформенными, но GTK выглядит несколько чуждо в других операционных системах, особенно в Mac OS X. Qt чувствует себя полностью нативно в Windows и довольно близко к Mac OS X. Он также предоставляет множество других кроссплатформенных функциональность за пределами пользовательского интерфейса, такая как многопоточность, доступ к файловой системе, работа в сети и т. д. Qt, безусловно, выигрывает, по крайней мере, в области переносимости.

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

1 голос
/ 17 декабря 2009

Я предлагаю получить общую книгу по GUI. Я использовал рамки окон Borland, Windows, wxWidgets, QT и PEG. Таким образом, стандарт не существует, но системы с графическим интерфейсом Event Driven . Изучите Event Driven программирование, и это должно дать вам отличную основу.

1 голос
/ 17 декабря 2009

На мой взгляд, лучший инструментарий C ++ GUI - это Qt http://qt.nokia.com

Он кроссплатформенный (windows, mac os x, linux), эффективен и имеет довольно много приятных расширений (Qwt, Qwt3d, QGLViewer, ...)

С другой стороны, если вы хотите узнать о программировании GUI , я бы изучил немало систем, включая GTK, Tk, Motif.

1 голос
/ 17 декабря 2009

GTK + это: работает на большинстве дистрибутивов Linux и Windows тоже.

Конечно, есть также кроссплатформенные Qt и WxWidgets.

0 голосов
/ 17 декабря 2009

Я думаю, что есть еще одна проблема, которую вы не упомянули: куда вы хотите пойти с этим?

  • Вы хотите "просто изучить это" или у вас есть конкретное приложение?
  • если у вас есть приложение, возможно, вам также необходимо рассмотреть:
    • на какой ОС вы планируете запустить
    • как сообщество поддерживает это: активно? трудно ли получить помощь?
  • какая производительность вам нужна / ожидается?
  • как долго вы планируете его поддерживать? (вы можете решить запустить ^ H ^ H ^ Hmove от C ++ через несколько лет, и если да, то имеет ли смысл использовать другой язык - например, Java?)
0 голосов
/ 17 декабря 2009

Если вы наиболее знакомы с интересующимся C, GTK + - хорошее место для старта. Если C ++, QT, вероятно, лучший выбор. Ваш рабочий стол выбора также является фактором. Gnome использует GTK +, KDE использует QT.

Необработанное программирование на X очень низкоуровневое. Очень немногие программы написаны непосредственно против X API напрямую. Там всегда были наборы инструментов, наслоенные на это. Некоторые из более старых наборов инструментов - Мотив (Лессиф) и Афина. Не пытайтесь начинать с них, хотя они сейчас очень стары.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...