QAccessible Class
QAccessible 类提供了与辅助功能相关的枚举和静态函数。更多
头文件: | #include <QAccessible> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake: | QT += gui |
- 所有成员(包括继承成员)的列表
- QAccessible 是辅助功能类的一部分。
公共类型
struct | State |
(since 6.8) enum class | AnnouncementPoliteness { Polite, Assertive } |
(since 6.8) enum class | Attribute { Custom, Level } |
enum | Event { AcceleratorChanged, ActionChanged, ActiveDescendantChanged, Alert, Announcement, …, VisibleDataChanged } |
Id | |
InterfaceFactory | |
enum | InterfaceType { TextInterface, ValueInterface, ActionInterface, TableInterface, TableCellInterface, …, AttributesInterface } |
flags | Relation |
enum | RelationFlag { Label, Labelled, Controller, Controlled, DescriptionFor, …, AllRelations } |
enum | Role { AlertMessage, Animation, Application, Assistant, BlockQuote, …, Window } |
enum | Text { Name, Description, Value, Help, Accelerator, …, Identifier } |
enum | TextBoundaryType { CharBoundary, WordBoundary, SentenceBoundary, ParagraphBoundary, LineBoundary, NoBoundary } |
静态公共成员
QAccessibleInterface * | accessibleInterface(QAccessible::Id id) |
void | deleteAccessibleInterface(QAccessible::Id id) |
void | installFactory(QAccessible::InterfaceFactory factory) |
bool | isActive() |
QAccessibleInterface * | queryAccessibleInterface(QObject *object) |
QAccessible::Id | registerAccessibleInterface(QAccessibleInterface *iface) |
void | removeFactory(QAccessible::InterfaceFactory factory) |
void | setRootObject(QObject *object) |
QAccessible::Id | uniqueId(QAccessibleInterface *iface) |
void | updateAccessibility(QAccessibleEvent *event) |
详细说明
该类是QWidget 应用程序辅助功能的一部分。
无法通过传统方式使用应用程序的人可以使用无障碍应用程序。
该类中的函数用于在无障碍应用程序(也称为 AT 服务器)和无障碍工具(AT 客户端)(如屏幕阅读器和盲文显示器)之间进行通信。客户端和服务器之间的通信方式如下:
- AT 服务器通过调用updateAccessibility() 函数将事件通知客户端。
- AT 客户端请求有关服务器中对象的信息。QAccessibleInterface 类是核心接口,它将这些信息封装在纯虚拟应用程序接口中。该接口的实现由 Qt XML 通过queryAccessibleInterface() API 提供。
服务器和客户端之间的通信由setRootObject() 函数初始化。可以安装函数指针来替换或扩展 QAccessible 中静态函数的默认行为。
Qt 支持 Microsoft Active Accessibility (MSAA)、macOS Accessibility 和 Unix/X11 AT-SPI 标准。使用 QAccessibleBridge 可支持其他后端。
在 Unix/X11 AT-SPI 实现中,当满足以下两个条件时,应用程序才可被访问:
- org.a11y.Status.IsEnabled DBus 属性为 true
- org.a11y.Status.ScreenReaderEnabled DBus 属性为 true
设置 DBus AT-SPI 属性的另一种方法是设置 QT_LINUX_ACCESSIBILITY_ALWAYS_ON 环境变量。
除了 QAccessible 的静态函数外,Qt 还提供了一个通用接口QAccessibleInterface ,可用于封装所有 Widget 和对象(如QPushButton )。这个单一接口提供了辅助技术所需的所有元数据。Qt 以插件的形式为其内置 widgets 提供了该接口的实现。
开发自定义 widget 时,可创建QAccessibleInterface 的自定义子类,并将其作为插件发布(使用QAccessiblePlugin )或编译到应用程序中。同样,Qt 预定义的可访问性支持可作为插件(默认)或直接编译到 Qt 库中。使用插件的主要好处是,只有在实际使用时,才会将辅助功能类加载到内存中;在不使用辅助技术的常见情况下,它们不会降低速度。
Qt XML 还包含两个便利类QAccessibleObject 和QAccessibleWidget ,它们继承于QAccessibleInterface ,并提供了最低公分母的元数据(如 Widgets 几何图形、窗口标题、基本帮助文本)。在封装自定义的QObject 或QWidget 子类时,可以将它们用作基类。
另请参阅 QAccessibleInterface 。
成员类型文档
[since 6.8]
enum class QAccessible::AnnouncementPoliteness
该枚举描述了QAccessibleAnnouncementEvent 所使用的公告优先级。
使用QAccessible::AnouncementPoliteness::Polite 时,辅助技术应在下一个适当的机会(如在讲完当前句子或用户暂停键入时)宣布消息。
在指定QAccessible::AnouncementPoliteness::Assertive 时,辅助技术应立即通知用户。
由于中断可能会使用户迷失方向或导致其无法完成当前任务,因此除非必须中断,否则不应使用QAccessible::AnouncementPoliteness::Assertive 。
常量 | 值 | 说明 |
---|---|---|
QAccessible::AnnouncementPoliteness::Polite | 0 | 公告具有正常优先级。 |
QAccessible::AnnouncementPoliteness::Assertive | 1 | 公告具有高优先级,应立即通知用户,即使这意味着要中断用户当前的任务。 |
此枚举在 Qt 6.8 中引入。
另请参阅 QAccessibleAnnouncementEvent 。
[since 6.8]
enum class QAccessible::Attribute
该枚举描述了QAccessibleAttributesInterface 使用的不同类型的属性。
这些属性与 ARIA、AT-SPI2、IAccessible、UIA 和 NSAccessibility 中的属性/(对象)属性概念类似,并在适用时映射到其平台对应属性。
每个属性都以键值对的形式处理,本枚举的值被用作键。
属性值以QVariant 表示。存储在QVariant 中的值的类型是固定的,并在下文中为每种属性类型指定。
常量 | 值 | 说明 |
---|---|---|
QAccessible::Attribute::Custom | 0 | 值类型:QHash<QString,QString>Custom 属性的特殊之处在于,它可以同时有效地表示多个属性,因为它本身就是一个QHash ,用于表示键值对。对于支持自定义属性键值对的平台,在Custom 属性中设置的属性会被桥接到平台层,而无需对平台特定属性进行任何转换。一般来说,应使用其他类型更强的属性。例如,在为特定功能正式添加官方新枚举值之前,可以使用该属性进行原型开发。 |
QAccessible::Attribute::Level | 1 | 值类型: int 定义结构中元素的层次级别,如标题的标题级别。该属性在概念上与 ARIA 中的 "aria-level "属性相匹配。 |
该枚举在 Qt 6.8 中引入。
另请参见 QAccessibleAttributesInterface 。
enum QAccessible::Event
该枚举类型定义了可访问的事件类型。
常量 | 值 | 说明 |
---|---|---|
QAccessible::AcceleratorChanged | 0x80C0 | 某操作的键盘加速器已更改。 |
QAccessible::ActionChanged | 0x0101 | 操作已更改。 |
QAccessible::ActiveDescendantChanged | 0x0102 | |
QAccessible::Alert | 0x0002 | 系统警报(如来自QMessageBox 的消息) |
QAccessible::Announcement (since Qt 6.8) | 0x80D0 | 请求发布消息。 |
QAccessible::AttributeChanged | 0x0103 | |
QAccessible::ContextHelpEnd | 0x000D | 对象的上下文帮助 (QWhatsThis) 已完成。 |
QAccessible::ContextHelpStart | 0x000C | 对象的上下文帮助 (QWhatsThis) 启动。 |
QAccessible::DefaultActionChanged | 0x80B0 | 可访问对象的默认 QAccessible::Action 已更改。 |
QAccessible::DescriptionChanged | 0x800D | 对象的QAccessible::Description 已更改。 |
QAccessible::DialogEnd | 0x0011 | 隐藏了一个对话框 (QDialog) |
QAccessible::DialogStart | 0x0010 | 对话框 (QDialog) 已设置为可见。 |
QAccessible::DocumentContentChanged | 0x0104 | 文本文档的内容已更改。 |
QAccessible::DocumentLoadComplete | 0x0105 | 已加载文档。 |
QAccessible::DocumentLoadStopped | 0x0106 | 文档加载已停止。 |
QAccessible::DocumentReload | 0x0107 | 已开始重新加载文档。 |
QAccessible::DragDropEnd | 0x000F | 拖放操作即将完成。 |
QAccessible::DragDropStart | 0x000E | 拖放操作即将开始。 |
QAccessible::Focus | 0x8005 | 对象已获得键盘焦点。 |
QAccessible::ForegroundChanged | 0x0003 | 窗口已激活(即桌面上的新窗口已获得焦点)。 |
QAccessible::HelpChanged | 0x80A0 | 对象的QAccessible::Help 文本属性已更改。 |
QAccessible::HyperlinkEndIndexChanged | 0x0108 | 超文本链接显示文本的结束位置发生变化。 |
QAccessible::HyperlinkNumberOfAnchorsChanged | 0x0109 | 超文本链接中的锚点数量发生变化,这可能是因为显示文本被分割成多个链接。 |
QAccessible::HyperlinkSelectedLinkChanged | 0x010A | 所选超文本链接的链接已更改。 |
QAccessible::HyperlinkStartIndexChanged | 0x010D | 超文本链接显示文本的起始位置已更改。 |
QAccessible::HypertextChanged | 0x010E | 超文本链接的显示文本已更改。 |
QAccessible::HypertextLinkActivated | 0x010B | 超文本链接被激活,可能是通过点击或按键激活。 |
QAccessible::HypertextLinkSelected | 0x010C | 超文本链接已被选中。 |
QAccessible::HypertextNLinksChanged | 0x010F | |
QAccessible::IdentifierChanged (since Qt 6.8) | 0x80E0 | 对象的标识符已更改。 |
QAccessible::LocationChanged | 0x800B | 对象在屏幕上的位置发生变化。 |
QAccessible::MenuCommand | 0x0018 | 菜单项被触发。 |
QAccessible::MenuEnd | 0x0005 | 菜单已关闭(Qt 对所有菜单都使用了 PopupMenuEnd)。 |
QAccessible::MenuStart | 0x0004 | 在菜单栏上打开了一个菜单(Qt 对所有菜单都使用 PopupMenuStart)。 |
QAccessible::NameChanged | 0x800C | 对象的QAccessible::Name 属性已更改。 |
QAccessible::ObjectAttributeChanged | 0x0110 | |
QAccessible::ObjectCreated | 0x8000 | 创建了一个新对象。 |
QAccessible::ObjectDestroyed | 0x8001 | 删除了一个对象。 |
QAccessible::ObjectHide | 0x8003 | 隐藏对象,例如使用QWidget::hide() 隐藏。被隐藏对象的任何子对象都不会发送此事件。隐藏对象时,由于该对象被其他对象遮挡,因此不会发送此事件。 |
QAccessible::ObjectReorder | 0x8004 | 布局或项目视图添加、删除或移动了一个对象(Qt 不使用此事件)。 |
QAccessible::ObjectShow | 0x8002 | 显示对象;例如,使用QWidget::show() 显示。 |
QAccessible::PageChanged | 0x0111 | |
QAccessible::ParentChanged | 0x800F | 对象的父对象发生变化。 |
QAccessible::PopupMenuEnd | 0x0007 | 弹出菜单已关闭。 |
QAccessible::PopupMenuStart | 0x0006 | 弹出菜单已打开。 |
QAccessible::ScrollingEnd | 0x0013 | 滚动条滚动操作已结束(鼠标已释放滑块手柄)。 |
QAccessible::ScrollingStart | 0x0012 | 滚动条滚动操作即将开始;这可能是由于鼠标按下滑块手柄等原因造成的。 |
QAccessible::SectionChanged | 0x0112 | |
QAccessible::SelectionAdd | 0x8007 | 项目视图中的选择项中添加了一个项目。 |
QAccessible::SelectionRemove | 0x8008 | 从项目视图选项中删除了一个项目。 |
QAccessible::Selection | 0x8006 | 菜单或项目视图中的选择已更改。 |
QAccessible::SelectionWithin | 0x8009 | 项目视图中的选区发生了多次更改。 |
QAccessible::SoundPlayed | 0x0001 | 对象播放了声音 |
QAccessible::TableCaptionChanged | 0x0113 | 更改了表格标题。 |
QAccessible::TableColumnDescriptionChanged | 0x0114 | 表格列的说明(通常在列标题中)已更改。 |
QAccessible::TableColumnHeaderChanged | 0x0115 | 表格列标题已更改。 |
QAccessible::TableRowDescriptionChanged | 0x0117 | 表格行的说明已更改,通常在行的标题中。 |
QAccessible::TableRowHeaderChanged | 0x0118 | 表格行标题已更改。 |
QAccessible::TableSummaryChanged | 0x0119 | 表格摘要已更改。 |
QAccessible::TextColumnChanged | 0x011D | 文本列已更改。 |
QAccessible::VisibleDataChanged | 0x0122 |
该枚举的值与IAccessible2和MSAA规范中定义的值相同。
QAccessible::Id
无符号的同义词,用于QAccessibleInterface 缓存。
QAccessible::InterfaceFactory
这是一个指向函数指针的类型定义,其签名如下:
typedef QAccessibleInterface *myFactoryFunction(const QString &key, QObject *);
函数接收QString 和QObject 指针,其中QString 是标识接口的键。QObject 用于传递给QAccessibleInterface ,以便它能持有一个引用。
如果密钥和QObject 没有对应的QAccessibleInterface ,nullptr
将被返回。
已安装的工厂会被 queryAccessibilityInterface() 调用,直到有工厂提供接口为止。
enum QAccessible::InterfaceType
QAccessibleInterface 支持多个子接口。为了提供有关某些对象的更多信息,它们的可访问表示应实现其中的一个或多个接口。
注意: 当子类化这些接口之一时,QAccessibleInterface::interface_cast() 需要被实现。
常量 | 值 | 描述 |
---|---|---|
QAccessible::TextInterface | 0 | 用于支持选择或超过一行的文本。简单标签不需要实现此接口。 |
QAccessible::ValueInterface | 2 | 用于操作数值的对象,如滑块或滚动条。 |
QAccessible::ActionInterface | 3 | 用于允许用户触发操作的交互式对象。基本上,所有对象都允许鼠标交互。 |
QAccessible::TableInterface | 5 | 列表、表格和树 |
QAccessible::TableCellInterface | 6 | 用于 TableInterface 对象中的单元格。 |
QAccessible::HyperlinkInterface | 7 | 超链接节点(通常作为文本节点的子节点嵌入) |
QAccessible::SelectionInterface (since Qt 6.5) | 8 | 支持选择子对象的非文本对象。 |
QAccessible::AttributesInterface (since Qt 6.8) | 9 | 支持特定对象属性的对象。 |
另请参阅 QAccessibleInterface::interface_cast(),QAccessibleTextInterface,QAccessibleValueInterface,QAccessibleActionInterface,QAccessibleTableInterface,QAccessibleTableCellInterface,QAccessibleSelectionInterface 和QAccessibleAttributesInterface 。
枚举 QAccessible::RelationFlag
flags QAccessible::Relation
该枚举类型定义了位标志,这些位标志可以组合起来指示两个可访问对象之间的关系。它被 relations() 函数使用,该函数返回调用对象的所有相关接口的列表,以及每个对象的关系。
列表中的每个条目都是一个 std::对,其中second
成员存储了first
成员所代表的returned
对象与origin
(调用者)接口/对象之间的关系类型。
在下表中,returned
对象指的是返回列表中的对象,而origin
对象指的是调用接口所代表的对象。
常量 | 值 | 说明 |
---|---|---|
QAccessible::Label | 0x00000001 | returned 对象是origin 对象的标签。 |
QAccessible::Labelled | 0x00000002 | returned 对象由origin 对象标示。 |
QAccessible::Controller | 0x00000004 | returned 对象控制origin 对象。 |
QAccessible::Controlled | 0x00000008 | returned 对象由origin 对象控制。 |
QAccessible::DescriptionFor (since Qt 6.6) | 0x00000010 | returned 对象为origin 对象提供说明。 |
QAccessible::Described (since Qt 6.6) | 0x00000020 | returned 对象由origin 对象描述。 |
QAccessible::FlowsFrom (since Qt 6.6) | 0x00000040 | 内容在逻辑上从returned 对象流向origin 对象。 |
QAccessible::FlowsTo (since Qt 6.6) | 0x00000080 | 内容逻辑上从origin 对象流向returned 对象。 |
QAccessible::AllRelations | 0xffffffff | 作为掩码,用于指定我们对所有关系的信息感兴趣 |
relations() 的实现会返回这些标志的组合。某些值是相互排斥的。
关系类型是QFlags<RelationFlag> 的类型定义。它存储关系标志值的 OR 组合。
enum QAccessible::Role
该枚举定义了可访问对象的角色。这些角色是
常量 | 值 | 描述 |
---|---|---|
QAccessible::AlertMessage | 0x00000008 | 用于提醒用户的对象。 |
QAccessible::Animation | 0x00000036 | 显示动画的对象。 |
QAccessible::Application | 0x0000000E | 应用程序的主窗口。 |
QAccessible::Assistant | 0x00000020 | 提供交互式帮助的对象。 |
QAccessible::BlockQuote (since Qt 6.9) | 0x431 | 引用其他来源内容的部分。 |
QAccessible::Border | 0x00000013 | 表示边框的对象。 |
QAccessible::ButtonDropDown | 0x00000038 | 下拉项目列表的按钮。 |
QAccessible::ButtonDropGrid | 0x0000003A | 下拉网格的按钮 |
QAccessible::ButtonMenu | 0x00000039 | 下拉菜单按钮 |
QAccessible::Canvas | 0x00000035 | 显示用户可与之交互的图形的对象。 |
QAccessible::Caret | 0x00000007 | 表示系统光标(文本光标)的对象。 |
QAccessible::Cell | 0x0000001D | 表格中的单元格 |
QAccessible::Chart | 0x00000011 | 显示数据图形的对象。 |
QAccessible::CheckBox | 0x0000002C | 表示可选中或取消选中的选项的对象。某些选项提供 "混合 "状态,例如既不选中也不取消选中。 |
QAccessible::Client | 0x0000000A | 窗口中的客户端区域。 |
QAccessible::Clock | 0x0000003D | 显示时间的时钟。 |
QAccessible::ColorChooser | 0x404 | 让用户选择颜色的对话框。 |
QAccessible::Column | 0x0000001B | 一列单元格,通常是表格中的单元格。 |
QAccessible::ColumnHeader | 0x00000019 | 数据列的标题。 |
QAccessible::ComboBox | 0x0000002E | 供用户选择的列表。 |
QAccessible::ComplementaryContent | 0x42C | 文档或网页中与主要内容互补的部分,通常是地标(参见 WAI-ARIA)。 |
QAccessible::Cursor | 0x00000006 | 代表鼠标光标的对象。 |
QAccessible::Desktop | 0x00000082 | 代表桌面或工作区的对象。 |
QAccessible::Dial | 0x00000031 | 表示刻度盘或旋钮的对象。 |
QAccessible::Dialog | 0x00000012 | 对话框。 |
QAccessible::Document | 0x0000000F | 文档,例如办公应用程序中的文档。 |
QAccessible::EditableText | 0x0000002A | 可编辑文本,如线条或文本编辑。 |
QAccessible::Equation | 0x00000037 | 表示数学公式的对象。 |
QAccessible::Footer | 0x40E | 页脚(通常在文档中)。 |
QAccessible::Form | 0x410 | 包含控件的网络表单。 |
QAccessible::Graphic | 0x00000028 | 图形或图片,如图标。 |
QAccessible::Grip | 0x00000004 | 手柄,用户可以拖动它来改变部件的大小。 |
QAccessible::Grouping | 0x00000014 | 代表其他对象逻辑分组的对象。 |
QAccessible::Heading | 0x414 | 文档中的标题。 |
QAccessible::HelpBalloon | 0x0000001F | 在单独、短暂的窗口中显示帮助的对象。 |
QAccessible::HotkeyField | 0x00000032 | 允许用户输入按键序列的热键字段。 |
QAccessible::Indicator | 0x00000027 | 表示当前值或项目的指示符。 |
QAccessible::LayeredPane | 0x00000080 | 可包含分层子对象(如堆栈中的子对象)的对象。 |
QAccessible::Link | 0x0000001E | 指向其他内容的链接。 |
QAccessible::List | 0x00000021 | 项目列表,用户可从中选择一个或多个项目。 |
QAccessible::ListItem | 0x00000022 | 项目列表中的一个项目。 |
QAccessible::MenuBar | 0x00000002 | 菜单栏,用户可从中打开菜单。 |
QAccessible::MenuItem | 0x0000000C | 菜单或菜单栏中的一个项目。 |
QAccessible::NoRole | 0x00000000 | 对象没有角色。这通常表示对象无效。 |
QAccessible::Note | 0x41B | 内容与资源主要内容无关的部分。 |
QAccessible::Notification | 0x00000086 | 表示通知的对象(如系统托盘中的通知)。该角色仅在 Linux 系统中有效。 |
QAccessible::PageTab | 0x00000025 | 页面选项卡,用户可选择该选项卡在对话框中切换到不同页面。 |
QAccessible::PageTabList | 0x0000003C | 页面选项卡列表。 |
QAccessible::Paragraph | 0x00000083 | 一段文字(通常出现在文档中)。 |
QAccessible::Pane | 0x00000010 | 通用容器。 |
QAccessible::PopupMenu | 0x0000000B | 菜单,列出用户可选择的选项以执行操作。 |
QAccessible::ProgressBar | 0x00000030 | 显示正在进行的操作进度的对象。 |
QAccessible::PropertyPage | 0x00000026 | 属性页面,用户可在此更改选项和设置。 |
QAccessible::Button | 0x0000002B | 按钮。 |
QAccessible::RadioButton | 0x0000002D | 表示与其他选项互斥的选项的对象。 |
QAccessible::Row | 0x0000001C | 一行单元格,通常是表格中的单元格。 |
QAccessible::RowHeader | 0x0000001A | 一行数据的标题。 |
QAccessible::ScrollBar | 0x00000003 | 滚动条,允许用户滚动可见区域。 |
QAccessible::Section | 0x00000085 | 节(在文档中)。 |
QAccessible::Separator | 0x00000015 | 分隔符,用于将空间划分为逻辑区域。 |
QAccessible::Slider | 0x00000033 | 滑块,允许用户在给定范围内选择数值。 |
QAccessible::Sound | 0x00000005 | 表示声音的对象。 |
QAccessible::SpinBox | 0x00000034 | 旋转框小部件,允许用户在给定范围内输入数值。 |
QAccessible::Splitter | 0x0000003E | 在其子部件之间分配可用空间的分割器。 |
QAccessible::StaticText | 0x00000029 | 静态文本,如其他部件的标签。 |
QAccessible::StatusBar | 0x00000017 | 状态栏 |
QAccessible::Table | 0x00000018 | 在行列网格中表示数据的表格。 |
QAccessible::Terminal | 0x00000081 | 终端或命令行界面 |
QAccessible::TitleBar | 0x00000001 | 窗口标题栏标题。 |
QAccessible::ToolBar | 0x00000016 | 工具栏,将用户经常访问的部件分组。 |
QAccessible::ToolTip | 0x0000000D | 工具提示,提供有关其他对象的信息。 |
QAccessible::Tree | 0x00000023 | 树形结构中的项目列表。 |
QAccessible::TreeItem | 0x00000024 | 树形结构中的一个项目。 |
QAccessible::UserRole | 0x0000ffff | 用于用户定义角色的第一个值。 |
QAccessible::WebDocument | 0x00000084 | HTML 文档,通常在浏览器中。 |
QAccessible::Whitespace | 0x0000003B | 其他对象之间的空白空间。 |
QAccessible::Window | 0x00000009 | 顶层窗口 |
enum QAccessible::Text
该枚举用于指定可访问对象返回的字符串信息。
常量 | 值 | 描述 |
---|---|---|
QAccessible::Name | 0 | 对象的名称。它既可用作标识符,也可用作可访问客户端的简短描述。 |
QAccessible::Description | 1 | 描述对象的简短文字。 |
QAccessible::Value | 2 | 对象的值。 |
QAccessible::Help | 3 | 一段较长的文字,介绍如何使用该对象。 |
QAccessible::Accelerator | 4 | 执行对象默认操作的键盘快捷键。 |
QAccessible::UserText | 0x0000ffff | 用户自定义文本的第一个值。 |
QAccessible::Identifier (since Qt 6.8) | 6 | 对象的标识符,用于用户界面测试等。 |
enum QAccessible::TextBoundaryType
该枚举描述了不同类型的文本边界。它遵循 IAccessible2 API,并在QAccessibleTextInterface 中使用。
常量 | 值 | 说明 |
---|---|---|
QAccessible::CharBoundary | 0 | 使用单个字符作为边界。 |
QAccessible::WordBoundary | 1 | 以单词为边界。 |
QAccessible::SentenceBoundary | 2 | 以句子为边界。 |
QAccessible::ParagraphBoundary | 3 | 以段落为边界。 |
QAccessible::LineBoundary | 4 | 以换行符为边界。 |
QAccessible::NoBoundary | 5 | 无边界(使用整个文本)。 |
另请参阅 QAccessibleTextInterface 。
成员函数文档
[static]
QAccessibleInterface *QAccessible::accessibleInterface(QAccessible::Id id)
返回属于id 的QAccessibleInterface 。
如果 id 无效,则返回nullptr
。
[static]
void QAccessible::deleteAccessibleInterface(QAccessible::Id id)
从缓存中删除属于id 的接口。ID 将失效,并可能被缓存重新使用。
[static]
void QAccessible::installFactory(QAccessible::InterfaceFactory factory)
安装InterfaceFactory factory 。最后添加的工厂是queryAccessibleInterface() 使用的第一个工厂。
[static]
bool QAccessible::isActive()
如果平台要求提供辅助功能信息,则返回true
。
在屏幕阅读器等工具访问辅助功能框架之前,该函数将返回 false。即使辅助功能未激活,也可以使用QAccessible::queryAccessibleInterface() 。但不会向平台发送任何通知。
建议使用此函数,以避免在不需要时通过updateAccessibility() 发送昂贵的通知。
[static]
QAccessibleInterface *QAccessible::queryAccessibleInterface(QObject *object)
如果给定的object 存在QAccessibleInterface 实现,则该函数返回指向该实现的指针;否则返回nullptr
。
该函数会调用所有已安装的工厂函数(从最近安装的到最晚安装的),直到找到一个能为object 的类提供接口的工厂函数为止。如果没有任何工厂函数能为该类提供可访问性实现,该函数会加载已安装的可访问性插件,并测试是否有任何插件能提供该实现。
如果无法为对象的类提供实现,函数会尝试使用上述策略为对象的父类寻找实现。
所有接口都由内部缓存管理,不应删除。
[static]
QAccessible::Id QAccessible::registerAccessibleInterface(QAccessibleInterface *iface)
调用该函数可确保手动创建的接口得到正确的内存管理。
每个接口必须只被调用一次iface 。queryAccessibleInterface只有在使用 "new "操作符实例化 QAccessibleInterfaces 时才需要调用该函数。不建议这样做,尽可能使用默认函数,让queryAccessibleInterface() 来处理这个问题。
如果需要重新实现QAccessibleInterface::child() 函数,并在构建子代后返回子代,则需要调用此函数。
[static]
void QAccessible::removeFactory(QAccessible::InterfaceFactory factory)
从已安装的 InterfaceFactories 列表中删除factory 。
[static]
void QAccessible::setRootObject(QObject *object)
将此应用程序可访问对象的根对象设置为object 。所有其他可访问对象都可以从根对象通过对象导航到达。
通常情况下,并不需要调用此函数,因为 Qt 会在QApplication::exec() 进入事件循环之前立即将QApplication 对象设置为根对象。
使用 QAccessible::installRootObjectHandler() 可将函数调用重定向到自定义的处理函数。
另请参见 queryAccessibleInterface()。
[static]
QAccessible::Id QAccessible::uniqueId(QAccessibleInterface *iface)
返回QAccessibleInterface iface 的唯一 ID。
[static]
void QAccessible::updateAccessibility(QAccessibleEvent *event)
通知可能与无障碍客户有关的更改。
event 提供有关更改的详细信息。其中包括更改来源和更改性质。 应包含足够的信息,以便发出有意义的通知。event
例如,类型ValueChange
表示滑块的位置已发生变化。
每当可访问对象或其子元素的状态发生变化时,无论是通过编程(如调用QLabel::setText()) 还是通过用户交互,都要调用此函数。
如果没有无障碍工具监听该事件,调用该函数的性能损失很小,但如果确定调用参数的代价很高,则可以测试QAccessible::isActive() 以避免不必要的计算。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.