Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt QUndoStack回滚而不可能重做()_Qt - Fatal编程技术网

Qt QUndoStack回滚而不可能重做()

Qt QUndoStack回滚而不可能重做(),qt,Qt,我需要通过撤消来从QUndoStack回滚一个(或可能多个)命令,但是我需要再次禁用它们。换句话说,如果我在撤销堆栈中有命令A、B和C,然后回滚C,我需要C被撤销(这很容易),但我需要B成为堆栈中的最后一个(最顶部),这样用户就不能再次触发重做C(也就是说,C应该永远消失)。这可能吗?能否将QUndoStack子类化,然后将redo()插槽设置为私有?还可以修改CanRedo()函数以返回false

我需要通过撤消来从
QUndoStack
回滚一个(或可能多个)命令,但是我需要再次禁用它们。换句话说,如果我在撤销堆栈中有命令
A
B
C
,然后回滚
C
,我需要
C
被撤销(这很容易),但我需要
B
成为堆栈中的最后一个(最顶部),这样用户就不能再次触发重做
C
(也就是说,
C
应该永远消失)。这可能吗?

能否将QUndoStack子类化,然后将redo()插槽设置为私有?还可以修改CanRedo()函数以返回false