QAccessibleInterface 类
QAccessibleInterface 类定义了一个接口,用于公开可访问对象的信息。 更多...
头文件 | #include <QAccessibleInterface> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake | QT += gui |
继承自 |
- 所有成员的列表,包括继承成员
- QAccessibleInterface 是 可访问性类 的一部分。
公开函数
QAccessibleActionInterface * | actionInterface() |
virtual QColor | backgroundColor() const |
virtual QAccessibleInterface * | child(int index) const = 0 |
virtual QAccessibleInterface * | childAt(int x, int y) const = 0 |
virtual int | childCount() const = 0 |
virtual QAccessibleInterface * | focusChild() const |
virtual QColor | foregroundColor() const |
virtual int | indexOfChild(const QAccessibleInterface *child) const = 0 |
virtual void * | interface_cast(QAccessible::InterfaceType type) |
virtual bool | isValid() const = 0 |
virtual QObject * | object() const = 0 |
virtual QAccessibleInterface * | parent() const = 0 |
virtual QRect | rect() const = 0 |
virtual QList<QPair<QAccessibleInterface *, QAccessible::Relation>> | relations(QAccessible::Relation match = QAccessible::AllRelations) const |
virtual QAccessible::Role | role() const = 0 |
(since 6.5) QAccessibleSelectionInterface * | selectionInterface() |
virtual void | setText(QAccessible::Text t, const QString &text) = 0 |
virtual QAccessible::State | state() const = 0 |
QAccessibleTableCellInterface * | tableCellInterface() |
QAccessibleTableInterface * | tableInterface() |
virtual QString | text(QAccessible::Text t) const = 0 |
QAccessibleTextInterface * | textInterface() |
QAccessibleValueInterface * | valueInterface() |
virtual QWindow * | window() const |
受保护函数
virtual | ~QAccessibleInterface() |
详细描述
此类是 QWidget 应用可访问性 的一部分。
无障碍工具(也称为无障碍客户端),例如屏幕阅读器或点显设备,需要了解应用程序中可访问对象的高级信息。可访问对象提供专门的输入和输出方法,使用户能够使用无障碍工具(AT服务器)与启用应用程序进行交互。
用户需要与之交互或作出反应的每个元素都是一个可访问对象,并应提供此信息。这些主要是视觉对象,例如小部件和小部件元素,但也可以是内容,例如声音。
AT客户端使用三个基本概念来获取应用程序中任何可访问对象的信息
- 属性 客户端可以读取关于可访问对象的信息。在某些情况下,客户端还可以修改这些属性;例如行编辑中的文本。
- 操作 客户端可以调用诸如按按钮之类的操作。
- 关系和导航 客户端可以通过对象之间的关系从一个可访问对象跳转到另一个。
QAccessibleInterface定义了这三个概念的API。
关系和导航
函数childCount()和indexOfChild()返回可访问对象的子代数量及其子对象在父对象中的索引。函数childAt()返回在指定位置找到的子QAccessibleInterface。该子对象不必是直接子对象。这允许在父对象已经知道最顶层子对象的情况下绕过中间层。childAt()用于击测试(找到鼠标下的对象)。
函数relations()提供有关对象与其他对象关系的详细信息,而函数parent()和child()允许遍历从一个对象到另一个对象。
属性
可访问对象的中心属性是它具有什么角色。不同的对象可以具有相同的角色,例如滚动条中的“添加行”元素和对话框中的OK
按钮都具有相同的作用,即“按钮”。角色暗示用户可以与用户界面元素进行什么类型的交互。
对象的状态属性是不同状态标志的组合,可以描述对象的状态与“正常”状态的不同,例如它可能不可用,并且还可以描述它的行为,例如它可能可选。
属性text提供了有关对象文本信息。对象通常有一个名称,但可以提供扩展信息,如描述、帮助文本或任何键盘加速键信息。某些对象允许通过setText()函数更改text属性,但这在大多数情况下是只读的。
属性rect提供了有关可访问对象几何信息。通常只有视觉对象才有此信息。
接口
为了允许用户与可访问对象交互,对象必须实现QAccessibleInterface并实现QAccessibleActionInterface。支持选择的对象可以定义操作来更改选择。
根据需要还应该实现几个其他接口。QAccessibleTextInterface用于更大的文本编辑,如文档视图。此接口不应用于标签/单行编辑。
对于滑块、滚动条和其他数值选择器,应该实现QAccessibleValueInterface。
列表、表格和树应实现QAccessibleTableInterface。
另请参阅 QAccessible、QAccessibleActionInterface、QAccessibleTextInterface、QAccessibleValueInterface 和 QAccessibleTableInterface。
成员函数文档
[虚拟 noexcept 保护]
QAccessibleInterface::~QAccessibleInterface()
QAccessibleActionInterface *QAccessibleInterface::actionInterface()
[虚拟]
QColor QAccessibleInterface::backgroundColor() const
如果有适用,则返回可访问的背景颜色,或者返回一个无效的 QColor。
另请参阅 foregroundColor()。
[纯虚拟]
QAccessibleInterface *QAccessibleInterface::child(int index) const
返回索引为 index 的可访问子项。基于0的索引。可以通过 childCount 检查对象子项的数量。
当请求无效子项时返回 nullptr
(例如,当子项在此期间成为无效时)。
另请参阅 childCount() 和 parent()。
[纯虚拟]
QAccessibleInterface *QAccessibleInterface::childAt(int x, int y) const
返回包含屏幕坐标(x,y)的子项的QAccessibleInterface。如果在此位置没有子项,则此函数返回 nullptr
。返回的可访问项必须是子项,但不一定是直接子项。
仅对可见对象(不可见对象可能布局不正确)可靠。
所有视觉对象都提供此信息。
为继承自QAccessibleObject的对象提供默认实现。这将迭代所有子项。如果小部件管理其子项(例如,表格),则写入专门的实现会更有效。
另请参阅 rect()。
[纯虚拟]
int QAccessibleInterface::childCount() const
返回属于此对象的孩子数量。子项可以为其自身提供可访问性信息(例如,子项小部件),或者成为此可访问对象的一个子元素。
所有对象都提供此信息。
另请参阅 indexOfChild()。
[虚拟]
QAccessibleInterface *QAccessibleInterface::focusChild() const
返回拥有键盘焦点的对象。
返回的对象可以是任何后裔,包括它自己。
[虚拟]
QColor QAccessibleInterface::foregroundColor() const
如果适用,返回可访问的文本颜色或无效的QColor。
另请参阅backgroundColor。
[纯虚函数]
int QAccessibleInterface::indexOfChild(const QAccessibleInterface *child) const
返回对象child在此对象子列表中的0起始索引,如果child不是此对象的子项则返回-1。
所有对象都提供有关其子项的信息。
另请参阅childCount。
[虚拟]
void *QAccessibleInterface::interface_cast(QAccessible::InterfaceType type)
从通用的QAccessibleInterface返回一个特定的可访问性接口type。
当通过专门的接口提供有关小部件或对象更多信息的函数必须被重新实现。例如,行编辑应该实现QAccessibleTextInterface。
另请参阅QAccessible::InterfaceType、QAccessibleTextInterface、QAccessibleValueInterface、QAccessibleActionInterface、QAccessibleTableInterface和QAccessibleTableCellInterface。
[纯虚函数]
bool QAccessibleInterface::isValid() const
如果使用此接口实现所需的所有数据有效(例如,所有指针均非null),则返回true
;否则返回false
。
另请参阅object。
[纯虚函数]
QObject *QAccessibleInterface::object() const
返回指向由该接口实现提供信息的QObject的指针。
另请参阅isValid。
[纯虚函数]
QAccessibleInterface *QAccessibleInterface::parent() const
返回可访问对象层次结构中父级的QAccessibleInterface。
如果不存在父级(例如,对于顶级应用程序对象),返回nullptr
。
另请参阅child。
[纯虚函数]
QRect QAccessibleInterface::rect() const
返回对象的几何形状。几何形状在屏幕坐标系统中。
此函数仅适用于可见的对象(不可见对象可能未正确布局)。
所有视觉对象都提供此信息。
另请参阅childAt。
[虚拟]
QList<QPair<QAccessibleInterface *, QAccessible::Relation>> QAccessibleInterface::relations(QAccessible::Relation match = QAccessible::AllRelations) const
返回与其他小部件的有意义关系。通常不会返回父子关系,除非以特定方式处理,例如在树视图中。它会返回由标签和标签关系。
可以使用可选参数 match 来筛选关系。它永远不会返回自身。
[纯虚函数]
QAccessible::Role QAccessibleInterface::role() const
返回对象的角色。对象的角色通常是静态的。
所有可访问的对象都有一个角色。
[自 6.5 以来]
QAccessibleSelectionInterface *QAccessibleInterface::selectionInterface()
此函数是在 Qt 6.5 中引入的。
[纯虚函数]
void QAccessibleInterface::setText(QAccessible::Text t, const QString &text)
将对象的文本属性 t 设置为 text。
请注意,大多数对象的文本属性是只读的,所以调用此函数可能没有任何效果。
另请参阅text()。
[纯虚函数]
QAccessible::State QAccessibleInterface::state() const
返回对象的当前状态。返回值是 QAccessible::StateFlag 枚举中的标志的组合。
所有可访问的对象都有一个状态。
QAccessibleTableCellInterface *QAccessibleInterface::tableCellInterface()
QAccessibleTableInterface *QAccessibleInterface::tableInterface()
[纯虚函数]
QString QAccessibleInterface::text(QAccessible::Text t) const
返回对象文本属性 t 的值。
QAccessible::Name 是由客户端用来标识、查找或向用户宣布可访问对象的一个字符串。所有对象必须在它们的容器内具有一个唯一的名称。名称可以由客户端以不同的方式使用,因此名称应既提供对象的简要描述,又是唯一的。
可访问对象的 QAccessible::Description 提供有关对象外观的文本信息。描述主要用于为视力受损用户提供更多的上下文,但也用于上下文搜索或其他应用程序。并不是所有对象都有描述。一个“确定”按钮可能不需要描述,但一个显示笑脸图片的工具按钮可能需要。
可访问对象的 QAccessible::Value 表示对象内部包含的视觉信息,例如单行编辑中的文本。通常,值可以被用户修改。并不是所有对象都有值,例如静态文本标签就没有,一些对象的状态已经是值,例如切换按钮。
QAccessible::Help 文本提供关于可访问对象功能和使用的信息。并非所有对象都提供此信息。
QAccessible::Accelerator 是一个键盘快捷键,用于激活对象的默认操作。键盘快捷键是菜单、菜单项或小部件文本中的下划线字符,可能是这个字符本身,或者这个字符和修改键(如Alt、Ctrl或Shift)的组合。例如工具按钮等命令控件也有快捷键,通常在工具提示中显示它们。
所有对象都提供了一个 QAccessible::Name 的字符串。
另请参阅 setText(),role(),和 state()。
QAccessibleTextInterface *QAccessibleInterface::textInterface()
QAccessibleValueInterface *QAccessibleInterface::valueInterface()
[虚函数]
QWindow *QAccessibleInterface::window() const
返回与底层对象关联的窗口。例如,QAccessibleWidget 重新实现了此功能并返回了 QWidget 的 windowHandle()。
在有些平台上,它用于能够通知AT客户端关于状态变化的信号。后端将遍历所有祖先直到找到窗口。(这意味着在祖先中至少有一个接口应该返回一个有效的 QWindow 指针)。
默认实现返回 nullptr
。
© 2024 The Qt Company Ltd. 本文档中包含的贡献的版权属于各自的拥有者。本提供的内容是根据自由软件基金会发布的 GNU自由文档许可证版本1.3 的条款许可的。Qt及其相关标志是The Qt Company Ltd.在芬兰和/或其他国家的商标。所有其他商标均为其各自所有者的财产。