2015-08-14 3 views
0

Как получить родительское меню заданного QAction? У меня есть QActions, добавленный в подменю.Родительское меню QAction

Есть ли способ узнать имя родительского меню для каждого действия?

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

Обратите внимание, что действие может быть добавлено к нескольким меню, панелям инструментов и т. Д. Таким образом, в общем случае нет ни одного родителя. –

ответ

2

linkedWidgets() вернет вам список виджетов, к которым это действие было добавлено.

ui->action567->associatedWidgets(); 
Смежные вопросы