Какая библиотека кросс-платформенного графического интерфейса имеет наиболее естественный вид для каждой платформы? - PullRequest
6 голосов
/ 21 февраля 2010

Я заметил, что GTK имеет одинаковое чувство на всех платформах, что отлично подходит для любителей Linux, но не так хорошо для людей, которые предпочитают свой родной интерфейс.

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

Ответы [ 7 ]

7 голосов
/ 21 февраля 2010

Я думаю, что Qt - отличный выбор, чтобы иметь естественный вид.

В Windows XP виджеты будут отображаться в стиле Luna (стиль по умолчанию в Windows XP). В Vista / 7 они будут отображаться с темой Aero. На MacOS они будут отображаться с темой Aqua.

В Linux все по-другому. Qt будет использовать свою собственную тему (стиль Plastique) или использовать вашу тему KDE (например, тему Oxygen). Если вы предпочитаете GNOME или XFCE (GTK), Qt также может использовать вашу тему GTK.

alt text

Приложение Qt может быть идеально интегрировано в рабочие столы Windows XP / Vista / 7, MacOS, KDE, GNOME и XFCE.

6 голосов
/ 21 февраля 2010

Wxwidgets использует базовую платформу для рисования виджетов (GTK под Linux, MFC под Windows ...), так что он не только выглядит как родной, но так и есть!

Edit - для Mac wxWidgets использует Carbon и в настоящее время переходит на Cocoa для 3.0.

Edit2 - я сам не использовал QT, но людям, которые его использовали, он очень понравился. В приложении QT, которое я использовал под Windows, я чувствовал себя менее "родным", с несколько более слабой интеграцией с рабочим столом, но это может быть просто отражением этих конкретных навыков разработчиков.

Хотя wxWidgets имеет свои причуды (несколько плохая интеграция в STL, MFC-подобные события, иногда трудно понять варианты блоков, ограниченный wxGrid ...), над ними работают, и система становится все лучше и лучше ( новые док-станции wxAUI потрясающие).

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

Мне кажется, что wxWidgets и QT в значительной степени сопоставимы, и переход к одному или другому будет в основном связан с личным состоянием.

2 голосов
/ 23 марта 2010

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

Я пришел к этому решению следующим ненаучным процессом:

  • Пересмотрел список опубликованных приложений и выбрал те, которые больше всего походили на что-то родное
  • VLC Media Player против FileZilla - иногда мне VLC кажется странным, тогда как я даже не осознавал, что FileZilla написана на WxWindows.
  • 5 из заявленных лучших 32 приложений используют WxWindows.

Для меня все вышеперечисленное достаточно просто, чтобы выбрать WxWindows в качестве первого выбора и посмотреть, где я окажусь через некоторое время.

Стоит отметить, что я много занимался XAML, и поэтому я определенно хотел бы вместо этого использовать XUL; так как гораздо приятнее получить макет из кода.

В качестве сноски несколько лет назад я разработал приложение, использующее, к счастью, давно умершую и ужасную ZincApplicationFramework - которая накладывает свои собственные элементы управления поверх него так же, как Qt. Это было ужасно, и я целую вечность возился с внутренностями, чтобы заставить его работать прямо под Windows. Это заставляет меня предвзято или, по меньшей мере, скептически относиться ко всему, что использует тот же подход, потому что вскоре после завершения этого проекта я использовал Allegris C ++ / Views для создания другого приложения, и это было намного лучше, потому что это был очень тонкий слой над нативными элементами управления - это означало, что было легко делать вещи и намного эффективнее.

Так что я могу отдать предпочтение тонким слоям и нативным элементам управления ...

1 голос
/ 09 июля 2010

Лично я предпочитаю Qt, а не WxWidgets от faaarrrr. API wxWidgets просто похож на другой MFC ... слишком неуклюжий на мой взгляд. Qt, с другой стороны, намного ближе к тому, на что должно быть похоже написание приложений в современном C ++, не говоря уже о его превосходном QtDesigner (хорошо, у wxWidgets есть wxFormBuilder, но в прошлый раз я проверял, что он не так хорош, как QtDesigner ).

1 голос
/ 21 февраля 2010

WxWidgets и Qt оба выглядят правильно на OS X, но не работают правильно, если вы не проделали небольшую дополнительную работу, потому что для правильной интеграции ОС на OS X также требуется, чтобы вы правильно понимали основные ловушки AppleScript; OS X использует их для многих общих действий графического интерфейса системы, поэтому вам нужно, чтобы они (например) перетаскивали и работали на значок док-станции.

1 голос
/ 21 февраля 2010

У меня нулевой опыт работы с Qt, но у SWT есть собственный внешний вид для основных платформ благодаря тому, что он поставляет нативные библиотеки для выполнения этой работы. Мы использовали его для создания плагинов Eclipse для наших различных проектов.

1 голос
/ 21 февраля 2010

Да, я верю, что это так. Qt пытается следовать нативному внешнему виду. Не только то, как выглядят виджеты, но и такие вещи, как порядок кнопок и т. Д. Конечно, будет сложно создать приложение, которое действительно следует всем соглашениям с пользовательским интерфейсом (например, дизайн интерфейса Mac сильно отличается от Windows), но Qt очень вам в этом поможет.

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