QUndoStack删除特定命令

man*_*tta -1 c++ qt

如何从中删除特定命令QUndoStack

该命令可以由其索引或指针给出.

Eli*_*kis 5

如果你使用的是Qt 5.9,那么QUndoStack::command(int index)QUndoCommand::setObsolete(bool obsolete)函数可能正是你要找的.在相关的文档QUndoStack::redo()命令提供了一个废弃的命令是如何处理的解释:

如果QUndoCommand::isObsolete()当前命令返回true,则该命令将从堆栈中删除.此外,如果clean索引大于或等于当前命令索引,则重置clean索引.