我正在寻找一种方法来更改
可以通过使用
上面的代码可以正常工作,但它也会将撤销命令添加到myTextEdit的撤销堆栈中。为了满足自己的需求,我想能够更改QTextBlock的QTextCharFormat,而不向QTextEdit的撤销堆栈添加撤销命令。 我考虑使用QTextDocument::setUndoRedoEnabled()方法暂时禁用撤销/重做系统,但该方法还会清除撤销堆栈,这是我不想做的。我还寻找其他改变撤销/重做系统行为的方法,但我没有找到让它暂时忽略更改的方法。我只是想在不注册更改的情况下对QTextEdit进行更改。
感谢任何提示或建议。谢谢!
QTextEdit
的 QTextBlock
的 QTextCharFormat
,而不触发撤销命令的添加。让我解释一下:可以通过使用
QTextCursor::setBlockCharFormat()
方法轻松更改 QTextBlock
的 QTextCharFormat
。假设我们有一个名为 myTextEdit
的 QTextEdit
,其可见光标位于我们想要更改的文本块中,我们可以这样更改文本块的 QTextCharFormat
:text_cursor = myTextEdit.textCursor()
text_cursor.setBlockCharFormat(someNewCharFormat)
上面的代码可以正常工作,但它也会将撤销命令添加到myTextEdit的撤销堆栈中。为了满足自己的需求,我想能够更改QTextBlock的QTextCharFormat,而不向QTextEdit的撤销堆栈添加撤销命令。 我考虑使用QTextDocument::setUndoRedoEnabled()方法暂时禁用撤销/重做系统,但该方法还会清除撤销堆栈,这是我不想做的。我还寻找其他改变撤销/重做系统行为的方法,但我没有找到让它暂时忽略更改的方法。我只是想在不注册更改的情况下对QTextEdit进行更改。
感谢任何提示或建议。谢谢!