PySide6.QtGui.QAccessible¶
- class QAccessible¶
QAccessible类提供了与可访问性相关的枚举和静态函数。More_…概要¶
静态函数¶
def
cleanup()def
installFactory()def
isActive()def
setActive()def
setRootObject()def
uniqueId()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
该类是QWidget应用程序的无障碍功能的一部分。
可访问的应用程序可以被那些无法通过常规方式使用应用程序的人使用。
此类中的函数用于可访问应用程序(也称为AT服务器)和辅助功能工具(AT客户端,如屏幕阅读器和盲文显示器)之间的通信。客户端和服务器通过以下方式进行通信:
AT 服务器 通过调用
updateAccessibility()函数通知客户端有关事件。AT客户端请求服务器中对象的信息。
QAccessibleInterface类是核心接口,并将这些信息封装在一个纯虚拟API中。Qt通过queryAccessibleInterface()API提供接口的实现。
服务器和客户端之间的通信由
setRootObject()函数初始化。可以安装函数指针来替换或扩展QAccessible中静态函数的默认行为。Qt 支持 Microsoft Active Accessibility (MSAA)、macOS 辅助功能和 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,可以用来包装所有的小部件和对象(例如,QPushButton)。这个单一接口提供了辅助技术所需的所有元数据。Qt为其内置小部件提供了此接口的实现作为插件。当你开发自定义小部件时,你可以创建
QAccessibleInterface的自定义子类,并将它们作为插件分发(使用QAccessiblePlugin)或编译到应用程序中。同样,Qt的预定义无障碍支持可以作为插件构建(默认)或直接构建到Qt库中。使用插件的主要优点是,无障碍类只有在实际使用时才会加载到内存中;它们不会在没有使用辅助技术的情况下减慢常见情况。Qt 还包括两个便利类,
QAccessibleObject和 QAccessibleWidget,它们继承自QAccessibleInterface并提供元数据的最低共同标准(例如,小部件几何形状、窗口标题、基本帮助文本)。在包装自定义的 QObject 或 QWidget 子类时,您可以将它们用作基类。另请参阅
- class Event¶
此枚举类型定义了可访问的事件类型。
常量
描述
QAccessible.AcceleratorChanged
操作的键盘快捷键已更改。
QAccessible.ActionChanged
一个动作已被更改。
QAccessible.ActiveDescendantChanged
QAccessible.Alert
系统警报(例如,来自QMessageBox的消息)
QAccessible.Announcement
请求消息的公告。
QAccessible.AttributeChanged
QAccessible.ContextHelpEnd
对象的上下文帮助(QWhatsThis)已完成。
QAccessible.ContextHelpStart
对象的上下文帮助(QWhatsThis)已启动。
QAccessible.DefaultActionChanged
可访问对象的默认 QAccessible::Action 已更改。
QAccessible.DescriptionChanged
对象的
Description已更改。QAccessible.DialogEnd
一个对话框(QDialog)已被隐藏
QAccessible.DialogStart
一个对话框(QDialog)已设置为可见。
QAccessible.DocumentContentChanged
文本文档的内容已更改。
QAccessible.DocumentLoadComplete
文档已加载。
QAccessible.DocumentLoadStopped
文档加载已停止。
QAccessible.DocumentReload
文档重新加载已启动。
QAccessible.DragDropEnd
拖放操作即将完成。
QAccessible.DragDropStart
拖放操作即将开始。
QAccessible.Focus
一个对象获得了键盘焦点。
QAccessible.ForegroundChanged
一个窗口已被激活(即,桌面上有一个新窗口获得了焦点)。
QAccessible.HelpChanged
对象的
Help文本属性已更改。QAccessible.HyperlinkEndIndexChanged
超文本链接的显示文本的结束位置已更改。
QAccessible.HyperlinkNumberOfAnchorsChanged
超文本链接中的锚点数量已更改,可能是因为显示文本已被拆分以提供多个链接。
QAccessible.HyperlinkSelectedLinkChanged
所选超文本链接的链接已更改。
QAccessible.HyperlinkStartIndexChanged
超文本链接的显示文本的起始位置已更改。
QAccessible.HypertextChanged
超文本链接的显示文本已更改。
QAccessible.HypertextLinkActivated
一个超文本链接已被激活,可能是通过点击或按键。
QAccessible.HypertextLinkSelected
已选择超文本链接。
QAccessible.HypertextNLinksChanged
QAccessible.IdentifierChanged
对象的标识符已更改。
QAccessible.LocationChanged
对象在屏幕上的位置已更改。
QAccessible.MenuCommand
菜单项被触发。
QAccessible.MenuEnd
菜单已关闭(Qt 对所有菜单使用 PopupMenuEnd)。
QAccessible.MenuStart
菜单栏上的菜单已打开(Qt 对所有菜单使用 PopupMenuStart)。
QAccessible.NameChanged
对象的
Name属性已更改。QAccessible.ObjectAttributeChanged
QAccessible.ObjectCreated
创建了一个新对象。
QAccessible.ObjectDestroyed
一个对象被删除。
QAccessible.ObjectHide
一个对象被隐藏;例如,使用QWidget::hide()。被隐藏的对象的任何子对象不会发送此事件。当对象被其他对象遮挡而隐藏时,不会发送此事件。
QAccessible.ObjectReorder
布局或项目视图已添加、删除或移动了一个对象(Qt 不使用此事件)。
QAccessible.ObjectShow
一个对象被显示;例如,使用QWidget::show()。
QAccessible.PageChanged
QAccessible.ParentChanged
对象的父对象已更改。
QAccessible.PopupMenuEnd
一个弹出菜单已关闭。
QAccessible.PopupMenuStart
一个弹出菜单已打开。
QAccessible.ScrollingEnd
滚动条滚动操作已结束(鼠标已释放滑块手柄)。
QAccessible.ScrollingStart
滚动条的滚动操作即将开始;例如,这可能是由于鼠标按下滑块手柄引起的。
QAccessible.SectionChanged
QAccessible.SelectionAdd
一个项目已被添加到项目视图中的选择中。
QAccessible.SelectionRemove
一个项目已从项目视图选择中移除。
QAccessible.Selection
菜单或项目视图中的选择已更改。
QAccessible.SelectionWithin
在项目视图中发生了多项选择更改。
QAccessible.SoundPlayed
对象已播放声音
QAccessible.TableCaptionChanged
表格标题已更改。
QAccessible.TableColumnDescriptionChanged
表格列的描述,通常在列的标题中找到,已被更改。
QAccessible.TableColumnHeaderChanged
表格列标题已更改。
QAccessible.TableRowDescriptionChanged
表格行的描述,通常在行的标题中找到,已被更改。
QAccessible.TableRowHeaderChanged
表格行标题已更改。
QAccessible.TableSummaryChanged
表格的摘要已更改。
QAccessible.TextColumnChanged
文本列已更改。
QAccessible.VisibleDataChanged
此枚举的值被定义为与IAccessible2和MSAA规范中定义的值相同。
- class Role¶
此枚举定义了一个可访问对象的角色。角色包括:
常量
描述
QAccessible.AlertMessage
用于提醒用户的对象。
QAccessible.Animation
一个显示动画的对象。
QAccessible.Application
应用程序的主窗口。
QAccessible.Assistant
一个提供交互式帮助的对象。
QAccessible.Border
一个表示边框的对象。
QAccessible.ButtonDropDown
一个按钮,用于下拉显示项目列表。
QAccessible.ButtonDropGrid
一个按钮,点击后会下拉一个网格。
QAccessible.ButtonMenu
一个可以下拉菜单的按钮。
QAccessible.Canvas
一个显示用户可以与之交互的图形的对象。
QAccessible.Caret
一个表示系统插入符号(文本光标)的对象。
QAccessible.Cell
表格中的一个单元格。
QAccessible.Chart
一个显示数据图形表示的对象。
QAccessible.CheckBox
一个表示可以选中或取消选中的选项的对象。某些选项提供“混合”状态,例如既未选中也未取消选中。
QAccessible.Client
窗口中的客户区域。
QAccessible.Clock
显示时间的时钟。
QAccessible.ColorChooser
一个让用户选择颜色的对话框。
QAccessible.Column
一列单元格,通常在表格内。
QAccessible.ColumnHeader
数据列的标题。
QAccessible.ComboBox
用户可以从中选择的选项列表。
QAccessible.ComplementaryContent
文档或网页的一部分,补充主要内容,通常是一个地标(参见WAI-ARIA)。
QAccessible.Cursor
一个表示鼠标光标的对象。
QAccessible.Desktop
该对象代表桌面或工作区。
QAccessible.Dial
一个表示拨号盘或旋钮的对象。
QAccessible.Dialog
一个对话框。
QAccessible.Document
一个文档,例如在办公应用程序中。
QAccessible.EditableText
可编辑的文本,例如行或文本编辑。
QAccessible.Equation
一个表示数学方程的对象。
QAccessible.Footer
页面中的页脚(通常在文档中)。
QAccessible.Form
包含控件的网页表单。
QAccessible.Graphic
图形或图片,例如图标。
QAccessible.Grip
用户可以拖动以改变小部件大小的手柄。
QAccessible.Grouping
一个表示其他对象逻辑分组的对象。
QAccessible.Heading
文档中的标题。
QAccessible.HelpBalloon
一个在单独的、短暂存在的窗口中显示帮助的对象。
QAccessible.HotkeyField
一个允许用户输入键序列的热键字段。
QAccessible.Indicator
表示当前值或项目的指示器。
QAccessible.LayeredPane
一个可以包含分层子对象的对象,例如在堆栈中。
QAccessible.Link
指向其他内容的链接。
QAccessible.List
一个项目列表,用户可以从中选择一个或多个项目。
QAccessible.ListItem
列表中的一个项目。
QAccessible.MenuBar
用户从中打开菜单的菜单栏。
QAccessible.MenuItem
菜单或菜单栏中的一个项目。
QAccessible.NoRole
该对象没有角色。这通常表示一个无效的对象。
QAccessible.Note
一个部分,其内容是对资源主要内容的补充或辅助。
QAccessible.Notification
一个表示通知的对象(例如在系统托盘中)。此角色仅在Linux上有效。
QAccessible.PageTab
用户可以选择的页面标签,用于在对话框中切换到不同的页面。
QAccessible.PageTabList
页面标签列表。
QAccessible.Paragraph
一段文本(通常在文档中找到)。
QAccessible.Pane
一个通用容器。
QAccessible.PopupMenu
一个列出用户可以选择的选项以执行操作的菜单。
QAccessible.ProgressBar
该对象显示正在进行的操作的进度。
QAccessible.PropertyPage
一个属性页面,用户可以在其中更改选项和设置。
QAccessible.Button
一个按钮。
QAccessible.RadioButton
一个表示与其他选项互斥的选项的对象。
QAccessible.Row
一行单元格,通常在表格内。
QAccessible.RowHeader
数据行的标题。
QAccessible.ScrollBar
滚动条,允许用户滚动可见区域。
QAccessible.Section
一个部分(在文档中)。
QAccessible.Separator
一个将空间划分为逻辑区域的分隔符。
QAccessible.Slider
一个允许用户在给定范围内选择值的滑块。
QAccessible.Sound
一个表示声音的对象。
QAccessible.SpinBox
一个微调框小部件,允许用户在给定范围内输入一个值。
QAccessible.Splitter
一个分割器,用于在其子部件之间分配可用空间。
QAccessible.StaticText
静态文本,例如其他小部件的标签。
QAccessible.StatusBar
一个状态栏。
QAccessible.Table
一个表示行和列网格中数据的表格。
QAccessible.Terminal
终端或命令行界面。
QAccessible.TitleBar
窗口的标题栏标题。
QAccessible.ToolBar
工具栏,用于分组用户经常访问的小部件。
QAccessible.ToolTip
一个工具提示,提供有关其他对象的信息。
QAccessible.Tree
树结构中的项目列表。
QAccessible.TreeItem
树结构中的一个项目。
QAccessible.UserRole
用于用户定义角色的第一个值。
QAccessible.WebDocument
HTML文档,通常在浏览器中。
QAccessible.Whitespace
其他对象之间的空白区域。
QAccessible.Window
一个顶层窗口。
- class Text¶
此枚举指定可访问对象返回的字符串信息。
常量
描述
QAccessible.Name
对象的名称。这可以被辅助客户端用作标识符或简短描述。
QAccessible.Description
描述对象的简短文本。
QAccessible.Value
对象的值。
QAccessible.Help
提供有关如何使用该对象的较长文本信息。
QAccessible.Accelerator
执行对象默认操作的键盘快捷键。
QAccessible.UserText
用于用户定义文本的第一个值。
QAccessible.Identifier
对象的标识符,例如用于UI测试。
- class RelationFlag¶
(继承自
enum.Flag) 此枚举类型定义了可以组合的位标志,用于指示两个可访问对象之间的关系。它由 relations() 函数使用,该函数返回调用对象的所有相关接口列表,以及每个对象的关系。列表中的每个条目都是一个QPair,其中
second成员存储了由first成员表示的returned对象与origin(调用者)接口/对象之间的关系类型。在下表中,
returned对象指的是返回列表中的对象,而origin对象是由调用接口表示的对象。常量
描述
QAccessible.Label
返回的对象是原始对象的标签。
QAccessible.Labelled
返回的对象由原始对象标记。
QAccessible.Controller
返回的对象控制原始对象。
QAccessible.Controlled
返回的对象由原始对象控制。
QAccessible.DescriptionFor
返回的对象提供了对原始对象的描述。QAccessible.Described
返回的对象由原始对象描述。
QAccessible.FlowsFrom
内容逻辑上从
returned对象流向origin对象。QAccessible.FlowsTo
内容逻辑上从
origin对象流向returned对象。QAccessible.AllRelations
用作掩码,指定我们对所有关系的信息感兴趣
relations() 的实现返回这些标志的组合。某些值是互斥的。
- class InterfaceType¶
QAccessibleInterface支持多个子接口。为了提供有关某些对象的更多信息,它们的可访问表示应实现这些接口中的一个或多个。注意
当子类化这些接口之一时,需要实现
interface_cast()。常量
描述
QAccessible.TextInterface
对于支持选择或多行的文本。简单的标签不需要实现此接口。
QAccessible.ValueInterface
用于操作值的对象,例如滑块或滚动条。
QAccessible.ActionInterface
用于允许用户触发操作的交互式对象。基本上所有允许例如鼠标交互的内容。
QAccessible.TableInterface
用于列表、表格和树。
QAccessible.TableCellInterface
用于TableInterface对象中的单元格。
QAccessible.HyperlinkInterface
用于超链接节点(通常作为文本节点的子节点嵌入)
QAccessible.SelectionInterface
用于支持选择子对象的非文本对象。
QAccessible.AttributesInterface
适用于支持对象特定属性的对象。
- class TextBoundaryType¶
此枚举描述了不同类型的文本边界。它遵循IAccessible2 API,并在
QAccessibleTextInterface中使用。常量
描述
QAccessible.CharBoundary
使用单个字符作为边界。
QAccessible.WordBoundary
使用单词作为边界。
QAccessible.SentenceBoundary
使用句子作为边界。
QAccessible.ParagraphBoundary
使用段落作为边界。
QAccessible.LineBoundary
使用换行符作为边界。
QAccessible.NoBoundary
无边界(使用整个文本)。
- class Attribute¶
此枚举描述了由
QAccessibleAttributesInterface使用的不同类型的属性。这些属性类似于在ARIA、AT-SPI2、IAccessible、UIA和NSAccessibility中发现的属性/(对象)属性的概念,并在适用时映射到它们的平台对应物。
每个属性都被视为键值对,此枚举的值用作键。
属性值以QVariant表示。存储在QVariant中的值的类型是固定的,并在下面为每种属性类型指定。
常量
描述
QAccessible.Attribute.Custom
值类型:
QHash, QString>Custom属性的特殊之处在于它可以有效地同时表示多个属性,因为它本身是一个用于表示键值对的 QHash。对于支持自定义键值对属性的平台,那些在Custom属性中设置的键值对会直接桥接到平台层,而不会应用任何特定于平台的属性转换。通常,应该使用其他更严格类型的属性。例如,这个属性可以用于在正式为特定功能添加新的枚举值之前进行原型设计。QAccessible.Attribute.Level
值类型:
int定义元素在结构中的层次级别,例如标题的标题级别。此属性在概念上与ARIA中的“aria-level”属性匹配。在版本6.8中添加。
- class AnnouncementPoliteness¶
此枚举描述了由
QAccessibleAnnouncementEvent使用的公告优先级。使用
QAccessible::AnouncementPoliteness::Polite,辅助技术应在下一个合适的时机宣布消息,例如在说完当前句子或用户暂停打字时。当指定
QAccessible::AnouncementPoliteness::Assertive时,辅助技术应立即通知用户。因为中断可能会使用户迷失方向或导致他们无法完成当前任务,所以除非中断是必要的,否则不应使用
QAccessible::AnouncementPoliteness::Assertive。常量
描述
QAccessible.AnnouncementPoliteness.Polite
公告具有正常优先级。
QAccessible.AnnouncementPoliteness.Assertive
该通知具有高优先级,应立即通知用户,即使这意味着中断用户当前的任务。
在版本6.8中添加。
- static accessibleInterface(uniqueId)¶
- Parameters:
uniqueId – int
- Return type:
返回属于
id的QAccessibleInterface。如果id无效,则返回
None。- static cleanup()¶
- static deleteAccessibleInterface(uniqueId)¶
- Parameters:
uniqueId – int
从缓存中移除属于此
id的接口并删除它。该id将变为无效,并可能被缓存重新使用。- static installFactory(arg__1)¶
- Parameters:
arg__1 –
PyCallable
- static isActive()¶
- Return type:
布尔
如果平台请求了无障碍信息,则返回
true。此函数将返回false,直到诸如屏幕阅读器之类的工具访问了无障碍框架。即使无障碍功能未激活,仍然可以使用
queryAccessibleInterface()。但不会有通知发送到平台。建议使用此函数来防止在不需要时通过
updateAccessibility()发送昂贵的通知。- static qAccessibleTextBoundaryHelper(cursor, boundaryType)¶
- Parameters:
cursor –
QTextCursorboundaryType –
TextBoundaryType
- Return type:
.std.pairint,int
如果给定的
object存在QAccessibleInterface实现,此函数将返回指向该实现的指针;否则返回None。该函数调用所有已安装的工厂函数(从最近安装到最早安装),直到找到一个为
object类提供接口的函数。如果没有工厂能为该类提供可访问性实现,该函数会加载已安装的可访问性插件,并测试是否有任何插件能提供该实现。如果没有对象类的实现可用,函数会尝试使用上述策略为对象的父类寻找实现。
所有接口都由内部缓存管理,不应删除。
- static registerAccessibleInterface(iface)¶
- Parameters:
iface –
QAccessibleInterface- Return type:
整数
调用此函数以确保手动创建的接口得到正确的内存管理。
每个接口
iface必须仅被调用一次。当调用queryAccessibleInterface时,此操作会被隐式调用,只有在使用“new”操作符实例化 QAccessibleInterfaces 时才需要调用此函数。不建议这样做,尽可能使用默认函数,并让queryAccessibleInterface()来处理此操作。当需要重新实现
child()函数并在构造后返回子对象时,需要调用此函数。- static setActive(active)¶
- Parameters:
active – 布尔值
将此应用程序的可访问对象的根对象设置为
object。所有其他可访问对象都可以通过从根对象进行对象导航来访问。通常,不需要调用此函数,因为Qt在进入QApplication::exec()的事件循环之前立即将QApplication对象设置为根对象。
使用 QAccessible::installRootObjectHandler() 将函数调用重定向到自定义的处理函数。
- static uniqueId(iface)¶
- Parameters:
iface –
QAccessibleInterface- Return type:
整数
返回
QAccessibleInterfaceiface的唯一ID。- static updateAccessibility(event)¶
- Parameters:
事件 –
QAccessibleEvent
通知可能对无障碍客户端相关的更改。
event提供了有关更改的详细信息。这些信息包括更改的来源和更改的性质。event应包含足够的信息以提供有意义的通知。例如,类型
ValueChange表示滑块的位置已被更改。每当您的可访问对象或其子元素的状态以编程方式(例如通过调用QLabel::setText())或通过用户交互发生更改时,请调用此函数。
如果没有辅助工具监听此事件,调用此函数的性能损失很小,但如果确定调用的参数成本较高,您可以测试
isActive()以避免不必要的计算。- class State¶
概要¶
方法¶
def
__init__()def
__eq__()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
- PySide6.QtGui.QAccessible.State.disabled¶
- PySide6.QtGui.QAccessible.State.selected¶
- PySide6.QtGui.QAccessible.State.focusable¶
- PySide6.QtGui.QAccessible.State.focused¶
- PySide6.QtGui.QAccessible.State.pressed¶
- PySide6.QtGui.QAccessible.State.checkable¶
- PySide6.QtGui.QAccessible.State.checked¶
- PySide6.QtGui.QAccessible.State.checkStateMixed¶
- PySide6.QtGui.QAccessible.State.readOnly¶
- PySide6.QtGui.QAccessible.State.hotTracked¶
- PySide6.QtGui.QAccessible.State.defaultButton¶
- PySide6.QtGui.QAccessible.State.expanded¶
- PySide6.QtGui.QAccessible.State.collapsed¶
- PySide6.QtGui.QAccessible.State.busy¶
- PySide6.QtGui.QAccessible.State.expandable¶
- PySide6.QtGui.QAccessible.State.marqueed¶
- PySide6.QtGui.QAccessible.State.animated¶
- PySide6.QtGui.QAccessible.State.invisible¶
- PySide6.QtGui.QAccessible.State.offscreen¶
- PySide6.QtGui.QAccessible.State.sizeable¶
- PySide6.QtGui.QAccessible.State.movable¶
- PySide6.QtGui.QAccessible.State.selfVoicing¶
- PySide6.QtGui.QAccessible.State.selectable¶
- PySide6.QtGui.QAccessible.State.linked¶
- PySide6.QtGui.QAccessible.State.traversed¶
- PySide6.QtGui.QAccessible.State.multiSelectable¶
- PySide6.QtGui.QAccessible.State.extSelectable¶
- PySide6.QtGui.QAccessible.State.passwordEdit¶
- PySide6.QtGui.QAccessible.State.hasPopup¶
- PySide6.QtGui.QAccessible.State.modal¶
- PySide6.QtGui.QAccessible.State.active¶
- PySide6.QtGui.QAccessible.State.invalid¶
- PySide6.QtGui.QAccessible.State.editable¶
- PySide6.QtGui.QAccessible.State.multiLine¶
- PySide6.QtGui.QAccessible.State.selectableText¶
- PySide6.QtGui.QAccessible.State.supportsAutoCompletion¶
- PySide6.QtGui.QAccessible.State.searchEdit¶
- __init__()¶
构造一个新的
State,所有状态都设置为false。