【问题标题】:QAction parent menuQAction 父菜单
【发布时间】: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;
    }
}

是否存在更好、更原生的方式?

【问题讨论】:

  • 请注意,一个操作可以添加到多个菜单、工具栏等。因此,在一般情况下,没有一个父项。

标签: qt qaction


【解决方案1】:

associatedWidgets() 将返回一个添加此操作的小部件列表。

ui->action567->associatedWidgets();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-04
    • 2021-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-08
    • 2014-03-01
    • 1970-01-01
    相关资源
    最近更新 更多