使用撤消历史记录同步两个qtextedits或qtextedit和qscintilla之间的内容

时间:2011-10-19 12:53:21

标签: python qt4 pyqt4 qtextedit qtextdocument

我正在使用pyqt4编写博客编辑器。我的问题是这个。有一个所见即所得的编辑器选项卡和一个HTML代码编辑器选项卡。在一个中完成的更改应该反映在另一个中。一种选择是在qtextedit中文本更改时使用setHtml和toHtml函数。但是这种方法的问题在于,当我在qtextedit上使用setHtml时,之前的所有编辑撤消历史记录都将丢失。如果我尝试在textchanged信号上保持自己的历史记录,将使用大量内存。考虑我输入一个句子,textchanged将针对每个单个字符发出信号,undo将逐个字符。

我尝试在两个qtextedits之间共享相同的qtextdocument,但由于突出显示与qtextdocument相关联,因此也会失败,因此会应用于两个qtextedits。

另一个选择是当用户在wysiwyg编辑器窗口中工作时什么都不做。当用户在html代码编辑器中进行一些编辑时,我会等到用户完成编辑,然后一旦完成,我将找到编辑的差异,并以某种方式,在wysiwyg编辑器的qtextdocument中进行相应的编辑更改。这可以实现吗?如何在qtextdocument中进行这样的更改?有一种我不知道的更简单的方法吗?

请帮忙。

1 个答案:

答案 0 :(得分:0)

我做了一些研究,并在Accessing QTextHtmlImporter in PyQt4

中更清楚地提出了我的问题

这基本上可以解决这个问题。