我正在使用 pyqt4 编写博客编辑器。我的问题是这个。有一个所见即所得的编辑器选项卡和一个 html 代码编辑器选项卡。在一个中所做的更改应该反映在另一个中。一种选择是在 qtextedit 中的文本更改时使用 setHtml 和 toHtml 函数。但是这种方法的问题是,当我在 qtextedit 上使用 setHtml 时,所有以前的编辑撤消历史都会丢失。如果我尝试在 textchanged 信号上维护自己的历史记录,将使用大量内存。考虑我输入一个句子,每个字符都会发出 textchanged 信号,而撤消将是一个字符一个字符。
我尝试在两个 qtextedits 之间共享相同的 qtextdocument,但这也失败了,因为突出显示链接到 qtextdocument,因此适用于两个 qtextedits。
另一种选择是当用户在所见即所得的编辑器窗口中工作时什么都不做。当用户在 html 代码编辑器中进行一些编辑时,我会等到用户完成编辑,然后一旦完成,我会找到编辑的差异,并以某种方式在所见即所得编辑器的 qtextdocument 中进行相应的编辑更改。这是可以实现的吗?如何在 qtextdocument 中进行这样的更改?有没有我不知道的更简单的方法?
请帮忙。