QAction 父菜单
Posted
技术标签:
【中文标题】QAction 父菜单【英文标题】:QAction parent menu 【发布时间】:2015-08-14 08:51:54 【问题描述】:如何获取给定 QAction 的父菜单? 我在子菜单中添加了一个 QActions。
有没有办法知道每个动作的父菜单名称?
ui->action567->parent() //return MainWindow
ui->action567->parentWidget() //return MainWindow
ui->action567->menu() //return nullptr.
ui->action567->actionGroup() //return nullptr.
我可以通过这种方式获取父菜单:
for( QMenu * menu : ui->menuBar->findChildren< QMenu * >() )
if( menu->actions().contains( ui->action567 ) )
qDebug() << menu << ui->action567 ;
break;
是否存在更好、更原生的方式?
【问题讨论】:
请注意,一个操作可以添加到多个菜单、工具栏等。因此,在一般情况下,没有一个父项。 【参考方案1】:associatedWidgets() 将返回一个添加此操作的小部件列表。
ui->action567->associatedWidgets();
【讨论】:
以上是关于QAction 父菜单的主要内容,如果未能解决你的问题,请参考以下文章
QAction QActionGroup QMenu 使用方法
Pyside2 QAction 会自动触发一次,但不会在用户单击菜单时触发