Как Qt использует C ++ только для создания пользовательских графических интерфейсов для многих платформ? - PullRequest
1 голос
/ 04 августа 2010

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

Ответы [ 3 ]

3 голосов
/ 04 августа 2010

«Как QT использует C ++ только для создания пользовательских графических интерфейсов для многих платформ?»

«Использует ли он API-интерфейсы каждой платформы ...?»

Вы ответили на свой вопрос. Это делает общую библиотеку для разработчиков, с которой они могут писать свои приложения. Разработчики приложения пишут свое приложение только один раз, не заботясь о специфике платформы. Затем автор библиотеки выпускает разные версии библиотеки для каждой платформы, которая обрабатывает все конкретные вызовы пользовательского интерфейса. Это называется инкапсуляция:

http://en.wikipedia.org/wiki/Information_hiding#Encapsulation

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

Изменить:

Также см. Комментарий Джулиано. Кажется, что это может быть ближе к тому, что вы хотите сделать, а не к вопросу, который вы задали. Я бы не стал делать ту работу, которую проделали Trolltech, команда WxWidgets, ребята из Gtk или люди из Mono, если бы я мог этого избежать.

3 голосов
/ 04 августа 2010

Хорошие люди в Trolltech (теперь Nokia) пишут весь код для вашей платформы.Только интерфейсы к их библиотеке остаются одинаковыми на разных платформах.Вы должны убедиться, что вы используете только их классы и не делаете специфичные для ОС вызовы.Если хотите, вы можете изменить графику и обработчики, чтобы расширить библиотеку Qt и создать свой собственный внешний вид.

1 голос
/ 06 августа 2010

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

Например, вы можете стилизовать ваше приложение с помощью таблиц стилей: http://doc.qt.io/qt-5/stylesheet.html, или даже с помощью пользовательского QStyle (что не очень просто): http://doc.qt.io/qt-5/qstyle.html

Qt Quick - это новая технология, которую мы представляем в следующем Qt 4.7 (ознакомьтесь с бета-версией, если вам интересно). Он позволяет вам легко определять пользовательские компоненты пользовательского интерфейса из простых примитивов, с помощью пользовательских анимаций, переходов состояний и других эффектов. См. Например http://www.youtube.com/watch?v=8G4U7QWRajg.

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