Spec-Zone.ru › Qt 5.12

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

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

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

Заголовки платформы могут использоваться совместно с 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.12/qtplatformheaders-index.html

Spec-Zone.ru

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