Accessing a (sub)menu defined in an XmlGui ui.rc file

Tobias Leupold tobias.leupold at gmx.de
Wed Jan 13 09:39:48 GMT 2021


Hi list :-)

I have a problem with a KXmlGuiWindow and I honestly can't find respective
docs or howtos/tutorials. I hope someone here can help me ...

It's a allegedly basic task: How can I access a submenu (or better: a
submenu's QAction) for a menu defined in a ...ui.rc file?

If I define the submenu like so:

    <MenuBar>
      <Menu name="foo" >
        <Menu name="bar">
          <text>Some text</text>
          <Action name="someAction"/>
        </Menu>
      </Menu>
    </MenuBar>

I can access the "someAction" action like the other ones like so:

    auto *someAction
        = actionCollection()->addAction(QStringLiteral("someAction"));
    someAction->setText(i18n("Some action"));
    someAction->setIcon(QIcon::fromTheme(QStringLiteral("some-icon")));
    connect(someAction, &QAction::triggered, this, 
&SomeClass::someFunction);

and so on.

But how can I get the "bar" QMenu (or it's respective QAction)? So that I 
can
e. g. disable or hide the menu, or assign an icon? For manually defined 
menus,
this would be as easy as "auto *action = menu->menuAction();" ...

Sorry if I overlooked something obvious, but I have no idea how to do this.
Thanks in advance for all help!

Cheers, Tobias



More information about the kde-devel mailing list