This is a very simple project to support the triggered
signal of the QMenu::menuAction
if you click on the QMenu.
It has been implemented as an event filter for QMenu
. Here is a relevant snippet:
// Create menu and install event filter
QMenu* mainMenu = new QMenu(this);
mainMenu->installEventFilter(new ClickableMenuFilter(mainMenu));
// Add some children for show
mainMenu->addAction("action1");
QMenu* childMenu = new QMenu("childMenu", this);
connect(childMenu->menuAction(), &QAction::triggered, [this]()
{
QMessageBox::information(this, "triggered", "childMenu");
});
childMenu->addAction("child1");
childMenu->addAction("child2");
mainMenu->addMenu(childMenu);
mainMenu->addAction("action2");
https://stackoverflow.com/questions/22197496/how-to-perform-action-on-clicking-a-qmenu-object-only