我想动态地给菜单项添加子菜单。我该如何实现?
我尝试了这样做,首先我创建了一个操作和子菜单,然后将子菜单添加到操作中。但是,当我连接操作的“触发”信号时,如果我点击该操作,程序会崩溃。
我还处理了菜单的“aboutToShow”信号,但同样在我点击操作时也会崩溃。
以下是示例代码:
Submenu = new QMenu(this);
connect(Submenu, SIGNAL( aboutToShow()), this, SLOT(move ()));
QAction *test = new QAction(tr("Selection"), this);
test ->setMenu(Submenu);
menubar()->addAction(test);
在显示子菜单之前,我希望能收到通知。
附加信息:
请在您的主窗口构造函数中尝试此代码。
QAction *action = new QAction("Test",this);
QAction *dummyaction = new QAction("Testing",this);
QMenu *menu = new QMenu();
menu->addAction(dummyaction);
bool val= connect(menu, SIGNAL( aboutToShow()), this, SLOT( Move()));
val= connect(menu, SIGNAL( aboutToHide()), this, SLOT(Move()));
action->setMenu(menu);
this->menuBar()->addAction(action);
如果我这样做,我就能看到一个子菜单项。但在此之前,Move slot 应该被调用,但它没有被调用...即使在隐藏之前也应该调用相同的 slot,但它没有出现...
我尝试了 connect 的返回值... 它是 true 的... 那么我的代码有什么问题... 请告诉我...