qt撤销与回退_Qt 的撤销回退事件 - osc_1i3ltp99的个人空间 - OSCHINA - 中文开源技术交流社区...

本文详细介绍了在Qt中实现撤销与回退功能的方法,包括重写QUndoCommand类的undo()和redo()函数,以及如何使用QUndoStack进行管理。通过一个QTableWidget单元格操作的例子,阐述了撤销即删除操作,恢复即还原操作的原理,并提供了具体的代码示例,指导如何在实际项目中应用撤销回退功能。
摘要由CSDN通过智能技术生成

Qt 的撤销回退事件

日期

作者

版本

2020年12月16日

Mister H

V1.0

前言

在工作中有时候需要撤销和回退(重做)功能,而在网上的资料大多都相同且较复杂,研究了一段时间,终于看出了点门道出来,下面与大家分享一下。

一、QUndoCommand?

Qt 想要实现撤销回退功能,必须通过QUndoCommand去重写undo()(撤销)、redo()(回退)这两个虚函数去实现,下面是Qt 自带帮助文档介绍QUndoCommand。

QUndoCommand类是存储在QUndoStack上的所有命令的基类。

QUndoCommand表示文档上的单个编辑操作;例如,在文本编辑器中插入或删除文本块。QUndoCommand可以使用redo()对文档应用更改,并使用undo()撤销更改。这些函数的实现必须在派生类中提供。

二、重写QUndoCommand类

1.头文件

看到这里,相信大家对Qt 的QUndoCommand有了一个简单的了解,下面写了一个简单的例子,教大家如何重写QUndoCommand去实现的。

(示例 QTableWidget里面单元格撤销与回退)代码如下:

class AddCommand : public QUndoCommand

{

public:

AddCommand(QTableWidget *tableItem,int row, int column, QString content,QUndoCommand *parent = 0);

~AddCommand();

//

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值