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
在QTableWidget上执行撤消和重做操作_Qt_Qtablewidget_Qmodelindex - Fatal编程技术网

在QTableWidget上执行撤消和重做操作

在QTableWidget上执行撤消和重做操作,qt,qtablewidget,qmodelindex,Qt,Qtablewidget,Qmodelindex,我正在使用QTableWidget显示一个表格以绘制一个图形。用户可以执行以下操作:输入、复制、剪切和粘贴、添加行、添加列、插入、删除等。所有这些操作都应堆叠起来,以便用户可以撤消或重做所有操作 我查看了quondostack,但在QTableWidget的上下文中,我不确定要将哪些数据或对象推送到堆栈中。因为对我来说,您必须记住从quondostack继承的类中编辑之前和之后的值,以便undo()和redo())可以恢复您想要的状态您已经有了QUNDO命令吗?实际上,您需要创建一个继承自QUn

我正在使用
QTableWidget
显示一个表格以绘制一个图形。用户可以执行以下操作:输入、复制、剪切和粘贴、添加行、添加列、插入、删除等。所有这些操作都应堆叠起来,以便用户可以撤消或重做所有操作


我查看了
quondostack
,但在
QTableWidget
的上下文中,我不确定要将哪些数据或对象推送到堆栈中。

因为对我来说,您必须记住从
quondostack
继承的类中编辑之前和之后的值,以便
undo()
redo())
可以恢复您想要的状态

您已经有了QUNDO命令吗?实际上,您需要创建一个继承自QUndoCommand的类。这里我只管理添加和删除项目。但是这里是表数据。但是添加行、列和插入的内容是什么呢?如果我只存储数据。首先,你必须写下你必须做的所有操作以及正在发生的变化。例如:编辑单元格时,必须记住行、列和2个字符串。添加行,然后您必须记住它是在哪里添加的。删除行、行索引和行数据