Find all actions in .ui form

  • Hi.
    How to dynamically find all .ui form actions?
    For example:
    @QList<QAction *> allactions = parentWidget()->findChildren<QAction *>();
    QAction *action = menuBar()->findChild<QAction *>("action_name");@

    For all Widgets it works, but not for QActions. menuBar(), menuWidget(), parent(), parentWidget() can't find actions at all.

  • QObject::findChildren() returns all objects with a given type and optional a given object name whose parent is directly or indirectly the given QObject.

    The parent for actions added using the UI designer is always the top-level widget, for example MainWindow, and <code>this->findChildren<QAction*>()</code> or simply <code>findChildren<QAction*></code> should return a list of all actions.

    If you add a QAction to a menu bar the menu bar does not become the parent of the action. You will have to use QMenu::actions() to retrieve a list of actions.

  • Thanks.
    Now all works great.

Log in to reply

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.