0
我正在用QPlainTextEdit
构建代码编辑器。默认情况下,当我在一行中键入一串单词然后按撤消时,整行将被删除。我想推动在每个字符上手动撤消堆栈,以便当我单击撤消时,删除前一个字符。然后,我可以实现仅捕获非字母等等,所以它一次会撤销一个逻辑令牌。我该怎么做?QPlainTextEdit - 手动推入撤消堆栈
我希望你们能帮助我。提前致谢。
我正在用QPlainTextEdit
构建代码编辑器。默认情况下,当我在一行中键入一串单词然后按撤消时,整行将被删除。我想推动在每个字符上手动撤消堆栈,以便当我单击撤消时,删除前一个字符。然后,我可以实现仅捕获非字母等等,所以它一次会撤销一个逻辑令牌。我该怎么做?QPlainTextEdit - 手动推入撤消堆栈
我希望你们能帮助我。提前致谢。
我已经通过重写keyPressEvent()
得到这个工作:
void CodeEditor::keyPressEvent(QKeyEvent *event)
{
QTextCursor cursor = textCursor();
cursor.beginEditBlock();
QPlainTextEdit::keyPressEvent(event);
cursor.endEditBlock();
setTextCursor(cursor);
}
例如,你会糊1000个字符,并且你想在1000撤消此?也许你应该只提供一个快捷方式或按钮来删除最后一个字符,或者做一些“聪明的”删除操作,而不是销毁所有的撤消堆栈,并按照你的意愿填写单个字符。 – Chernobyl 2014-10-04 10:52:54
现在,如果您可以告诉我如何推动在每个键入的空间上撤消堆栈,它会帮助我。然后,我会找出其余的。 – LogicStuff 2014-10-04 11:58:05