在两个qtextedits或一个qtextedit和qscintilla之间同步内容和撤消历史记录

2024-09-27 09:37:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用pyqt4编写一个博客编辑器。我的问题是这个。有一个所见即所得编辑器选项卡和一个html代码编辑器选项卡。一方面的改变应该反映在另一方面。一种选择是,每当qtextedit中的文本发生更改时,都使用setHtml和toHtml函数。但是这种方法的问题是,当我在qtextedit上使用setHtml时,所有以前的编辑撤消历史都会丢失。如果我试图在textchanged signal上维护自己的历史记录,那么将使用大量内存。假设我输入一个句子,textchanged将为每个字符发出信号,undo将逐个字符显示。在

我试着在两个qtextdocument之间共享同一个qtextdocument,但也失败了,因为高亮显示链接到qtextdocument,因此被应用于两个qtextedits。在

另一个选择是当用户在所见即所得编辑器窗口中工作时不执行任何操作。当用户在html代码编辑器中进行一些编辑时,我会等到用户完成编辑,然后在完成编辑之后,我会找到编辑的差异,并在wysiwyg编辑器的qtextdocument中进行相应的编辑更改。这能实现吗?如何在qtextdocument中进行这样的更改?有没有一种更简单的方法是我不知道的?在

请帮忙。在


Tags: 方法代码用户文本编辑html编辑器字符

热门问题