C++ Qt从QMenu中删除操作,以便稍后再次添加

C++ Qt从QMenu中删除操作,以便稍后再次添加,c++,qt,C++,Qt,我需要从QMenu中删除操作,但以后需要添加它们 问题是,当我重新添加它们时,它们不会出现(可能是因为当我从菜单中删除它们时,操作被删除了) 我该怎么做 请注意,隐藏/禁用等不适合我,我真的需要删除它们您没有确切说明如何从QMenu创建/添加/删除操作,因此我无法对您当前正在做的事情发表评论,但是。。。您应该能够自己创建/管理一些操作,然后使用重载——它不承担作为参数传递的QAction的所有权 QMenu menu; QAction action_I_Want_to_manage("Save.

我需要从
QMenu
中删除操作,但以后需要添加它们

问题是,当我重新添加它们时,它们不会出现(可能是因为当我从菜单中删除它们时,操作被删除了)

我该怎么做


请注意,隐藏/禁用等不适合我,我真的需要删除它们

您没有确切说明如何从
QMenu
创建/添加/删除操作,因此我无法对您当前正在做的事情发表评论,但是。。。您应该能够自己创建/管理一些操作,然后使用重载——它不承担作为参数传递的
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());

不适合我。一旦我移除该动作,它就会消失,不再渲染。我认为它被删除了,变成了一个悬而未决的指针。如果上面的代码不起作用,那么还有其他事情在发生。听起来好像您的
QAction
超出了范围或类似的内容。如果您可以编辑您的问题,包括您的实际代码,那么我会看看。