QT从Qmenu删除操作,以后再添加

Qt remove action from QMenu to add it again later

本文关键字:添加 操作 Qmenu 删除 QT      更新时间:2023-10-16

我需要从 QMenu中删除操作,但我需要稍后添加。

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

我该怎么做?

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

您不准确地说出如何创建/添加/删除QMenu的操作,因此我无法评论您当前正在做的事情,但是...您应该是能够自己创建/管理一些操作,然后使用QWidget::addAction(QAction *) Overload -IT 不假定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());