Qt 如何设置QMenu中包含的QActions的可访问名称

Qt 如何设置QMenu中包含的QActions的可访问名称,qt,qt4,Qt,Qt4,我正在尝试设置QMenu子项的可访问属性。我可以使用setAccessibleName()设置父菜单的accessible属性,因为它继承了QWidget。不幸的是,添加到菜单中的QAction不是widgets子类,它们直接继承QObject 有没有办法设置菜单项的可访问名称 谢谢我从未使用过Qt的这一方面,但看起来您必须使用框架。 对于QObject,有一个子类,即 . 这仍然有一些来自基础的纯方法,因此您需要提供一些方法 通过快速查看文档,我可以了解到,您可以为整个菜单或每个操作提供一个Q

我正在尝试设置QMenu子项的可访问属性。我可以使用setAccessibleName()设置父菜单的accessible属性,因为它继承了QWidget。不幸的是,添加到菜单中的QAction不是widgets子类,它们直接继承QObject

有没有办法设置菜单项的可访问名称


谢谢

我从未使用过Qt的这一方面,但看起来您必须使用框架。 对于
QObject
,有一个子类,即 . 这仍然有一些来自基础的纯方法,因此您需要提供一些方法


通过快速查看文档,我可以了解到,您可以为整个菜单或每个操作提供一个
QAccessibleObject
包装器。如果执行后者,那么您将实现
childCount()
以返回0,并
role(inti)
以返回
QAccessible::MenuItem
,我不确定这是否适用于您使用menu的情况,但我解决了我的问题,其中o->parent()会像这样返回QObject


dynamic_cast(o->parent())->setAccessibleName(“任意”)

这听起来比我能找到的任何东西都更有希望。我正在研究使用QAction::associatedWidgets()来访问任何图形小部件的可能性,这些图形小部件可能用于绘制菜单项/操作,并以这种方式获取/设置可访问信息,但这可能只会将您指向QMenu。我尝试了这个,它确实指向了家长菜单。我将尝试实际答案中包含的想法,但感觉这应该容易得多…@abudker:如果有什么安慰的话,那么我同意:)@abudker,你工作了吗?如果是这样,您介意提供一个小片段吗?