类型化权限的不透明包裹器。 更多...
头: | #include <QPermissions> |
CMake: |
find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
Since: | Qt 6.5 |
QPermission (const T & type ) | |
Qt::PermissionStatus | status () const |
QMetaType | type () const |
std::optional<T> | value () const |
QPermission 类是不透明包裹器为 类型化权限 ,当校验 (或请求) 权限时使用。不需要明确构造此类型,因为在校验 (或请求) 权限时会自动使用类型:
qApp->checkPermission(QCameraPermission{});
当请求权限时,给定函子将传递 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(); }
下列权限是可用的:
访问蓝牙外围设备 | |
访问用户的日历 | |
访问摄像头为取得图片 (或视频) | |
访问用户的联系人 | |
访问用户的位置 | |
为监视访问麦克风 (或录制声音) |
另请参阅 应用程序权限 .
构造权限从给定 类型化权限 type .
You do not need to construct this type explicitly, as the type is automatically used when checking or requesting permissions.
This constructor participates in overload resolution only if
T
is one of the
类型化权限
类:
访问蓝牙外围设备 | |
访问用户的日历 | |
访问摄像头为取得图片 (或视频) | |
访问用户的联系人 | |
访问用户的位置 | |
为监视访问麦克风 (或录制声音) |
返回权限的状态。
Returns the type of the permission.
返回
类型化权限
类型
T
,或
std::nullopt
若此
QPermission
object doesn't contain one.
使用 type () for dynamically choosing which typed permission to request.
此函数仅参与重载解析,若
T
is one of the
类型化权限
类:
访问蓝牙外围设备 | |
访问用户的日历 | |
访问摄像头为取得图片 (或视频) | |
访问用户的联系人 | |
访问用户的位置 | |
为监视访问麦克风 (或录制声音) |