如何覆盖撤销/重做在QPlainTextEdit
How to override undo / redo in QPlainTextEdit
我正在子类化q明文编辑,我希望能够拦截撤消/重做命令,以便我可以实现自定义功能。
我意识到我可以用setUndoRedoEnabled禁用撤消/重做功能,我可以检测Ctrl+Z和Ctrl+Y按键。然而,这似乎不是最好的跨平台方式。
任何建议吗?
您只需要重新实现插槽:
class MyTestEdit : public QPlainTextEdit {
Q_OBJECT
public slots:
void redo() { ... }
void undo() { ... }
};
Signal和slots与其他c++方法完全相同。如果你在子类中重新实现它们,它们将被调用,而不是父类。
我认为你可以使用"QUndoStack"。
在子类的构造函数中(最好是构造函数),调用一个方法来创建撤销和重做操作来处理你的类。
原型://调用这个函数注册撤销和重做操作
Void methodCrteaesUndoandRedoActions()
{
QUndoStack unStack = new QUndoStack (this);
QAction *undoAct = undoStack->createUndoAction(this);
QAction *RedoAct = undoStack->createRedoAction(this);
}
//在你的类中实现下面的函数来处理业务
void undo()
{
}
void redo()
{
}
相关文章:
- 如何将stdout重定向到stderr
- #定义c-预处理器常量..我做错了什么
- 在Qt中复制,剪切,粘贴,重命名,撤消和重做
- Qt 撤消/重做和线程
- 在 QTextEdit 中撤消/重做
- 使用最小样板保存/加载+撤消/重做机制
- QT:QSplitter,重做尺寸
- 撤消后触发重做
- 撤消/重做的命令模式:何时不合并撤消命令
- 重做字符是未声明的,但它被声明了
- 撤消/重做时释放内存时出现问题
- 可视化C++撤消和重做操作
- 使用链表撤消/重做
- 如何覆盖撤销/重做在QPlainTextEdit
- 在Qt中撤消重做
- 在painter程序中实现撤消重做
- 撤销/重做使用列表的shared_ptr
- 让线程按顺序重做打印函数
- 在一次调用中重置使用 iomanip 所做的所有更改的类:setprecision、setfill 和标志
- 你如何只分配给一个指针在c#为我的撤消重做类