QAccessibleInterface Class

QAccessibleInterface 类定义了一个接口,用于公开有关可访问对象的信息。更多

头文件: #include <QAccessibleInterface>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
继承于

QAccessibleObject

公共函数

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<std::pair<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

保护函数

详细说明

该类是QWidget 应用程序辅助功能的一部分。

无障碍工具(也称为 AT 客户端),如屏幕阅读器或盲文显示器,需要有关应用程序中无障碍对象的高级信息。无障碍对象提供专门的输入和输出方法,使用户可以在启用的应用程序(AT 服务器)中使用无障碍工具。

用户需要与之交互或作出反应的每个元素都是无障碍对象,都应提供这些信息。这些对象主要是视觉对象,如小部件和小部件元素,但也可以是内容,如声音。

AT 客户端使用三个基本概念来获取应用程序中任何无障碍对象的信息:

  • 属性客户端可以读取可访问对象的信息。在某些情况下,客户端还可以修改这些属性,例如行编辑中的文本。
  • 操作客户端可以调用操作,如按下按钮或.NET 操作。
  • 关系和导航客户端可以利用对象之间的关系,从一个可访问对象遍历到另一个可访问对象。

QAccessibleInterface 为这三个概念定义了 API。

关系和导航

函数childCount() 和indexOfChild() 返回一个可访问对象的子对象数和子对象在其父对象中的索引。函数childAt() 返回在某个位置找到的 QAccessibleInterface 子对象。该子对象不一定是直接子对象。这样,当父对象已经知道最顶层的子对象时,就可以绕过中间层。childAt() 用于命中测试(查找鼠标下的对象)。

relations() 函数提供了一个对象与其他对象之间关系的信息,parent() 和child() 允许从一个对象遍历到另一个对象。

属性

可访问对象的核心属性是它具有什么role() 。不同的对象可以具有相同的角色,例如,滚动条中的 "添加行 "元素和对话框中的OK 按钮都具有相同的角色 "按钮"。角色意味着用户可以与用户界面元素进行何种交互。

对象的state() 属性是不同状态标志的组合,既可以描述对象的状态与 "正常 "状态的区别,如不可用,也可以描述对象的行为方式,如可选择。

text() 属性提供了有关对象的文本信息。对象通常有一个名称,但也可以提供扩展信息,如描述、帮助文本或有关其提供的任何键盘加速器的信息。有些对象允许通过setText() 函数更改text() 属性,但在大多数情况下,这些信息是只读的。

rect() 属性提供了可访问对象的几何信息。这些信息通常只适用于可视对象。

交互界面

为使用户能与无障碍对象交互,除 QAccessibleInterface 外,该对象还必须实现QAccessibleActionInterface 。支持选择的对象可以定义更改选择的操作。

QAccessibleTextInterface 应用于较大文本的编辑,如文档视图。标签/单行编辑不应使用该界面。

对于滑块、滚动条和其他数值选择器,QAccessibleValueInterface

列表、表格和树应执行QAccessibleTableInterface

另请参见 QAccessible,QAccessibleActionInterface,QAccessibleTextInterface,QAccessibleValueInterfaceQAccessibleTableInterface

成员函数文档

[virtual noexcept protected] QAccessibleInterface::~QAccessibleInterface()

摧毁QAccessibleInterface.

QAccessibleActionInterface *QAccessibleInterface::actionInterface()

[virtual] QColor QAccessibleInterface::backgroundColor() const

返回可访问的背景颜色(如果适用)或无效的QColor

另请参阅 foregroundColor() 。

[pure virtual] QAccessibleInterface *QAccessibleInterface::child(int index) const

返回索引为index 的可访问子代。索引为 0。可以通过childCount 查看对象的子对象数量。

当询问无效子对象时(例如,子对象在此期间变得无效),返回nullptr

另请参阅 childCount() 和parent()。

[pure virtual] QAccessibleInterface *QAccessibleInterface::childAt(int x, int y) const

返回包含屏幕坐标 (x,y) 的子代的QAccessibleInterface 。如果该位置上没有子代,该函数将返回nullptr 。返回的可访问对象必须是一个子对象,但不一定是直接子对象。

此函数仅对可见对象可靠(不可见对象可能无法正确布局)。

所有可视对象都会提供此信息。

为继承QAccessibleObject 的对象提供了默认实现。这将遍历所有子对象。如果部件管理其子部件(如表格),编写专门的实现会更有效。

另请参见 rect()。

[pure virtual] int QAccessibleInterface::childCount() const

返回属于此对象的子对象的数量。子对象可以单独提供可访问性信息(如子 widget),也可以是此可访问对象的子元素。

所有对象都提供此信息。

另请参见 indexOfChild()。

[virtual] QAccessibleInterface *QAccessibleInterface::focusChild() const

返回键盘焦点所在的对象。

返回的对象可以是任何后代,包括其自身。

[virtual] QColor QAccessibleInterface::foregroundColor() const

返回可访问的前景色(如果适用)或无效的QColor

另请参阅 backgroundColor()。

[pure virtual] int QAccessibleInterface::indexOfChild(const QAccessibleInterface *child) const

返回child 在此对象子对象列表中的索引(以 0 为基准),如果child 不是此对象的子对象,则返回-1。

所有对象都提供有关其子对象的信息。

另请参见 childCount()。

[virtual] void *QAccessibleInterface::interface_cast(QAccessible::InterfaceType type)

从通用QAccessibleInterface 返回专门的可访问性接口type

在通过专用接口提供有关部件或对象的更多信息时,必须重新实现该函数。例如,行编辑应实现QAccessibleTextInterface

另请参见 QAccessible::InterfaceType,QAccessibleTextInterface,QAccessibleValueInterface,QAccessibleActionInterface,QAccessibleTableInterfaceQAccessibleTableCellInterface

[pure virtual] bool QAccessibleInterface::isValid() const

如果使用此接口实现所需的所有数据都有效(例如所有指针都非空),则返回true ;否则返回false

另请参阅 object() 。

[pure virtual] QObject *QAccessibleInterface::object() const

返回指向QObject 的指针,该接口实现为其提供信息。

另请参阅 isValid()。

[pure virtual] QAccessibleInterface *QAccessibleInterface::parent() const

返回可访问对象层次结构中父对象的QAccessibleInterface

如果不存在父对象(例如顶层应用程序对象),则返回nullptr

另请参见 child()。

[pure virtual] QRect QAccessibleInterface::rect() const

返回对象的几何图形。几何图形以屏幕坐标为单位。

此函数只适用于可见对象(不可见对象可能无法正确布局)。

所有可视对象都会提供此信息。

另请参见 childAt()。

[virtual] QList<std::pair<QAccessibleInterface *, QAccessible::Relation>> QAccessibleInterface::relations(QAccessible::Relation match = QAccessible::AllRelations) const

返回与其他部件的有意义关系。通常情况下,这不会返回父/子关系,除非以特定方式处理,如在树形视图中。它通常会返回被标注关系和标签关系。

可以使用可选参数match 过滤关系。它永远不会返回自身。

另请参见 parent() 和child()。

[pure virtual] QAccessible::Role QAccessibleInterface::role() const

返回对象的角色。对象的角色通常是静态的。

所有可访问的对象都有一个角色。

另请参阅 text() 和state()。

[since 6.5] QAccessibleSelectionInterface *QAccessibleInterface::selectionInterface()

该函数在 Qt 6.5 中引入。

[pure virtual] void QAccessibleInterface::setText(QAccessible::Text t, const QString &text)

将对象的文本属性t 设置为text

请注意,大多数对象的文本属性都是只读的,因此调用此函数可能没有任何效果。

另请参阅 text()。

[pure virtual] QAccessible::State QAccessibleInterface::state() const

返回对象的当前状态。返回值是 QAccessible::StateFlag 枚举中标志的组合。

所有可访问对象都有一个状态。

另请参阅 text() 和role()。

QAccessibleTableCellInterface *QAccessibleInterface::tableCellInterface()

QAccessibleTableInterface *QAccessibleInterface::tableInterface()

[pure virtual] QString QAccessibleInterface::text(QAccessible::Text t) const

返回对象的文本属性t 的值。

QAccessible::Name 是一个字符串,客户端使用它来标识、查找或向用户公布可访问的对象。所有对象都必须有一个在其容器中唯一的名称。客户端可以使用不同的名称,因此名称既要简短描述对象,又要具有唯一性。

可访问对象的QAccessible::Description 提供了有关对象视觉外观的文本信息。描述主要用于为视觉障碍用户提供更多的上下文信息,但也可用于上下文搜索或其他应用。并非所有对象都有描述。一个 "确定 "按钮不需要说明,但一个显示笑脸图片的工具按钮则需要说明。

可访问对象的QAccessible::Value 代表对象所包含的可视化信息,例如行编辑中的文本。通常,用户可以修改该值。并非所有对象都有值,例如静态文本标签就没有,而有些对象的状态已经是值,例如切换按钮。

QAccessible::Help 文本提供了无障碍对象的功能和使用信息。并非所有对象都提供这些信息。

QAccessible::Accelerator 是激活对象默认操作的键盘快捷方式。键盘快捷键是菜单、菜单项或窗口小部件文本中的下划线字符,可以是字符本身,也可以是该字符与 Alt、Ctrl 或 Shift 等修饰符键的组合。工具按钮等命令控件也有快捷键,通常会在工具提示中显示。

QAccessible::Identifier 可以明确设置,以便为辅助技术提供一个 ID。这对用户界面测试特别有用。如果没有明确设置标识符,则标识符将由相应接口根据QObject::objectName 或其类名以及QObject::objectName 或其父代链中父代的类名设置为一个 ID。

所有对象都为QAccessible::Name 提供了一个字符串。

另请参阅 setText()、role() 和state()。

QAccessibleTextInterface *QAccessibleInterface::textInterface()

QAccessibleValueInterface *QAccessibleInterface::valueInterface()

[virtual] QWindow *QAccessibleInterface::window() const

返回与底层对象相关联的窗口。例如,QAccessibleWidget 将其重新实现,并返回QWidget 的 windowHandle()。

在某些平台上,它用于通知 AT 客户端状态变化。后端将遍历所有祖先,直到找到一个窗口。(这意味着至少有一个接口应返回有效的QWindow 指针)。

默认实现返回nullptr

© 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.