我正在尋找一種方法來更改的QTextBlock
的QTextCharFormat
而不觸發添加撤消命令。讓我解釋一下:更改爲QTextEdit而不添加撤消命令到撤消堆棧
QTextBlock
的QTextCharFormat
可以很容易地通過使用QTextCursor::setBlockCharFormat()
方法進行更改。假設我們有一個QTextEdit
稱爲myTextEdit
它的可見光標是我們要改變文本塊中,我們可以改變文本塊的QTextCharFormat
像這樣:
text_cursor = myTextEdit.textCursor()
text_cursor.setBlockCharFormat(someNewCharFormat)
上面的代碼工作正常,但它也將增加一個撤銷命令到myTextEdit
撤銷堆棧。出於我自己的目的,我希望能夠更改QTextCharFormat
的QTextBlock
而不添加撤消命令到QTextEdit
的撤消堆棧。
我認爲使用QTextDocument::setUndoRedoEnabled()
方法暫時禁用了撤消/恢復系統,但該方法也清除了我不想做的撤消堆棧。我也在尋找其他方法來改變undo/redo系統的行爲方式,但是我還沒有找到一種方法讓它暫時忽略更改。我只是想對QTextEdit
進行更改,而沒有撤銷/重做系統註冊更改。
任何提示或建議表示讚賞。謝謝!
我想你可能會走運,看看[這個qt-interest線程](http://www.archivum.info/[email protected]/2006-10/01204/QTextEdit-temporary-undo -suppression.html)(這有點舊,但它總結的問題相當好)。 – ekhumoro 2014-11-25 00:31:59