QPermission类
类型权限的不可见包装。 更多信息...
头文件 | #include <QPermissions> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake | QT += core |
自 | Qt 6.5 |
公共函数
QPermission(const T &type) | |
Qt::PermissionStatus | status() const |
QMetaType | type() const |
std::optional<T> | value() const |
详细描述
QPermission类是类型权限的不可见包装,用于检查或请求权限。您不需要显式构建此类型,因为在检查或请求权限时会自动使用此类型。
qApp->checkPermission(QCameraPermission{});
请求权限时,将给定functor传递一个QPermission实例,可用来检查请求的结果。
qApp->requestPermission(QCameraPermission{}, [](const QPermission &permission) { if (permission.status() == Qt::PermissionStatus:Granted) takePhoto(); });
要检查原始类型权限的属性,请使用value()函数。
QLocationPermission locationPermission; locationPermission.setAccuracy(QLocationPermission::Precise); qApp->requestPermission(locationPermission, this, &LocationWidget::permissionUpdated);
void LocationWidget::permissionUpdated(const QPermission &permission) { if (permission.status() != Qt::PermissionStatus:Granted) return; auto locationPermission = permission.value<QLocationPermission>(); if (!locationPermission || locationPermission->accuracy() != QLocationPermission::Precise) return; updatePreciseLocation(); }
类型权限
以下权限可供使用:
访问蓝牙外设 | |
访问用户的日历 | |
访问相机以拍照或视频 | |
访问用户的联系人 | |
访问用户的位置 | |
访问麦克风以监控或录音音效 |
另请参阅应用权限。
成员函数文档
template <typename T, QPermission::if_permission<T> = true> QPermission::QPermission(const T &type)
根据给定的类型权限type构造权限。
您不需要显式构建此类型,因为在检查或请求权限时会自动使用此类型。
仅当T是类型权限类之一时,此构造函数才参与重载解析
访问蓝牙外设 | |
访问用户的日历 | |
访问相机以拍照或视频 | |
访问用户的联系人 | |
访问用户的位置 | |
访问麦克风以监控或录音音效 |
Qt::PermissionStatus QPermission::status() const
返回权限的状态。
QMetaType QPermission::type() const
返回权限的类型。
模板 <typename T, QPermission::if_permission<T> = true> std::optional<T> QPermission::value() const
返回类型为 T
的 类型权限,如果在 QPermission 对象中没有,则返回 std::nullopt
。
使用 类型 () 动态选择要请求的类型权限。
如果 T
是 类型权限 类之一,则此函数参与重载解析。
访问蓝牙外设 | |
访问用户的日历 | |
访问相机以拍照或视频 | |
访问用户的联系人 | |
访问用户的位置 | |
访问麦克风以监控或录音音效 |
© 2024 The Qt Company Ltd. 本文档中包含的贡献的文档版权属于各自的拥有者。本提供的文档是根据Free Software Foundation发布的GNU Free Documentation License版本1.3许可的。Qt及其相关标志是芬兰和/或世界其他地区的The Qt Company Ltd.的商标。所有其他商标均为其各自拥有者的财产。