Hi David!

Thanks for the input! In my case, it was only about how to get a pointer to
a menu defined via XML. What Alexander wrote does this very job:

auto *someMenu = qobject_cast<QMenu *>(
   guiFactory()->container("menuId", this));

(for the XML you wrote, calling this with "foo", would return a pointer to
the menu defined via '<Menu name="foo">'.

Am Mittwoch, 13. Januar 2021 23:53:20 CET schrieb David Hurka:
On Wednesday, January 13, 2021 10:39:48 AM CET Tobias Leupold wrote:
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 ...

I faced the same problem... :(

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" > ...

I probably don’t understand properly what you need. But if you want to modify the action which contains the menu "bar", you could use KActionMenu.

Change the ui.rc to:

    <MenuBar>
      <Menu name="foo" >
        <Action name="bar"/>
      </Menu>
    </MenuBar>

then create a KActionMenu called "bar" in your KActionCollection, set its icon etc., and populate its menu.

Of course this moves UI definition from ui.rc to C++ code, but it looks like you want to modify the menu at runtime.





Reply via email to