Spec-Zone.ru › Qt 5.9

Заголовки платформы Qt

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

Тип таких нативных обработчиков сильно зависит от платформы, и в некоторых случаях плагин платформы может потребовать дополнительной информации для адаптации обработчика, только сам обработчик недостаточен. Поэтому общедоступный API состоит из функций, принимающих или возвращающих QVariant, содержащий тип платформоспецифического значения. См., например, QOpenGLContext::setNativeHandle() и QOpenGLContext::nativeHandle(). При работе в Linux/X11, используя плагин платформы xcb и интерфейс системы окон GLX, вариант содержит QGLXNativeContext. На других платформах будет использоваться другой класс. Все эти классы размещаются в модуле заголовков платформы Qt.

Заголовки платформы могут использоваться в сочетании с QGuiApplication::platformFunction() для предоставления типа-безопасного интерфейса к платформоспецифичным функциям. Возможно, что заголовки, определенные в QtPlatformHeaders, определяют типы для функций, которые могут быть возвращены плагином платформы из QGuiApplication::platformFunction(). Заголовки в QtPlatformHeaders также могут реализовывать функции-обертки для указателя на функцию, предоставляя статическую функцию, которую можно вызывать из любого контекста после создания интеграции платформы. Реализация этой модели — QXcbWindowFunctions::setWmWindowType(). Эта функция извлекает указатель на функцию из QGuiApplication::platformFunction и выполняет эту функцию, если запрошенная функция была возвращена.

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

Начало работы

Чтобы включить определения функций и классов модуля, используйте следующие директивы:

#include <QtPlatformHeaders/QWindowsWindowFunctions>
#include <QtPlatformHeaders/QXcbWindowFunctions>

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

Примечание: Имя модуля (QtPlatformHeaders) должно появиться в директиве #include.

Примечание: Нет необходимости заключать код в #ifdef директивы в зависимости от платформы.

Справочник API

  • Классы C++

См. также QXcbWindowFunctions и QWindowsWindowFunctions.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qtplatformheaders-index.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API