我需要从QMenu
删除操作,但我需要稍后添加。
问题是,我重新添加它们,它们不会出现(可能是因为当我从菜单中删除它们时删除了操作)。
我该怎么做?
请注意,隐藏/禁用等不适合我,我真的需要删除它们
答案 0 :(得分:2)
您没有准确说出如何创建/添加/删除QMenu
中的操作,因此我无法对您当前正在做的事情发表评论,但是......你应该能够自己创建/管理一些操作,然后使用QWidget::addAction(QAction *)
重载 - 不假设QAction
的所有权作为参数传递
QMenu menu;
QAction action_I_Want_to_manage("Save...");
menu.addAction("File...");
menu.addAction(&action_I_Want_to_manage);
menu.exec(QCursor::pos());
/*
* Remove the action temporarily...
*/
menu.removeAction(&action_I_Want_to_manage);
menu.exec(QCursor::pos());
/*
* ...stick it back in.
*/
menu.addAction(&action_I_Want_to_manage);
menu.exec(QCursor::pos());