Spec-Zone.ru › Qt 5.13

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

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

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

Заголовки платформы могут использоваться совместно с QGuiApplication::platformFunction() для предоставления безопасного по типам интерфейса к функциям, специфичным для платформы. Возможно, что заголовки, определенные в QtPlatformHeaders, определяют typedef для функций, которые могут быть возвращены плагином платформы из 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.13/qtplatformheaders-index.html

Spec-Zone.ru

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