Должен ли я использовать кроссплатформенный GUI-инструментарий или полагаться на нативные?

В качестве программиста я должен написать программу на C++ для преобразования аудиофайлов из / в различные форматы. Вероятно, это потребует создания простого графического интерфейса.

Будет ли большая работа по созданию отдельных графических интерфейсов для Mac и Windows с использованием Cocoa и WinForms вместо кросс-платформенного инструментария, такого как Qt или GTK?
(мне все равно придется поддерживать отдельную версию для Windows и версию для Mac)
Графический интерфейс пользователя, вероятно, будет очень простым и потребует только базовых функций.

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
4
0
1 699
7
Перейти к ответу Данный вопрос помечен как решенный

Ответы 7

Ответ принят как подходящий

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

Да.

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

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

Вы смотрели wxWidgets? Кросс-платформенные встроенные элементы управления.

Самая большая проблема в том, что на разных платформах разные правила размещения элементов управления. Конечно, кнопки выглядят родными, но если расположение неправильное, то общий интерфейс все равно будет отстой. (Пользователи OSX, как правило, наиболее разборчивы в этом отношении.)

Donal Fellows 17.04.2010 18:56

Я согласен с тем, что, если возможно, лучше всего использовать собственные интерфейсы. В последнее время я не использовал wxWidgets, и я слышал, что он прошел долгий путь, но когда это был wxWindows, мы создали с ним приложение, которое должно было быть построено в X / Motif. Когда мы закончили работу и выполнили его, заказчик сказал, что он недостаточно похож на X / Motif, и нам пришлось переделать весь интерфейс за наш счет ... Джоэл Спольски написал хорошую статью об этом, но я могу Заголовок не помню. Он сказал, IIRC, что проблема с Java и некоторым другим кроссплатформенным пользовательским интерфейсом заключалась в том, что «ваша собака лает на мое приложение» - это небольшие несоответствия, которые раздражают людей.

: -О. Кто в здравом уме хотел бы, чтобы их приложение выглядело как MOTIF!?!?!? Это вроде COBOL интерфейсных инструментов!

slacker 17.04.2010 19:28

Для этого я скоро напишу свой собственный слой графического интерфейса кроссплатформенного приложения. В зависимости от сложности вашего приложения это может быть лишь небольшая часть того, что требуется для QT, GTK или FOX.

Причина в том, что мы видим тенденцию к тому, что производители платформ (в первую очередь Apple) пытаются спроектировать свою систему так, чтобы она выглядела уникальной. Это значительно усложняет постоянную синхронизацию QT, GTK, FOX и других инструментов платформы с последними виджетами.

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

Кросс-платформенные инструменты, более или менее, все делают неверное предположение, что разница между платформами заключается в размещении кнопок и стилях виджетов. В некоторых случаях это может сойти с рук - приложение Qt будет чувствовать себя довольно родным как в Windows (где соглашения о пользовательском интерфейсе очень слабые), так и в Linux, особенно в среде KDE. В общем, вы можете относительно легко перемещаться между Linux и Windows; соглашения похожи, и сообщество Windows относится к ним небрежно.

Mac - самый сложный. Его пользовательский интерфейс построен на совершенно иной парадигме, чем Windows или большинство сред Linux.

Но в целом в нативном приложении легче говорить на родном языке платформы во многих отношениях, чем просто в стиле виджета.

wxWidgets использует стандартный синтаксис и препроцессор C++, что позволяет легко переходить с простого C или C++. И будет производить очень естественный вид там, где он появляется, будь то GTK, X11, MS-Windows или Mac.

Он зрел с 20 лет с момента выхода первого выпуска, имеет полную документацию с простой навигацией и поддерживается большим сообществом по всему миру. Кодируйте в своей любимой среде IDE или используйте известные Eclipse-IDE и wxFormBuilder в качестве дизайнера графического интерфейса. Библиотеку сборки wx и настройку IDE / Toolchain можно найти по этой ссылке: http://yasriady.blogspot.co.id/2016/01/raspberry-pi-toolchain.html

Разработайте свое приложение на рабочем столе Linux, а также предоставьте компилятор для Raspberry Pi2 (тестированное целевое приложение работает без сбоев на Raspbian Jessie) ............

Другие вопросы по теме