【发布时间】:2010-05-06 12:51:08
【问题描述】:
我想动态地将子菜单添加到菜单项。我怎样才能做到这一点?
我试过这样, 我创建了一个动作和子菜单。然后我将子菜单添加到操作中。 但是,我已经连接了动作的“触发”信号。如果我单击该操作,它会崩溃..
我还处理了菜单的“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 插槽应该调用之前,它没有被调用..甚至在 hide 之前,同一个插槽也应该调用..它不会来..
我尝试了连接的返回值..它只是真实的......所以我的代码有什么问题..请说..
【问题讨论】: