Python QTextEdit:如何使用自定义元数据生成只读文本块?

Python QTextEdit:如何使用自定义元数据生成只读文本块?,python,pyqt,rich-text-editor,Python,Pyqt,Rich Text Editor,我正在为必须支持简单“占位符”宏的文档开发富文本编辑器,生成一些程序定义的文本。想想MS Word中的“字段”功能: 宏必须在可编辑文档中表示为只读文本的穿孔,用户可以剪切/复制/粘贴,但不能编辑。它必须存储一些技术信息 理想的解决方案是文本的只读范围,与文档的其余部分一起流动,并允许通过上下文菜单进行特殊交互。可接受的解决方案是使用单个元素(如css中的display:inline block)和自定义文本 有可能吗?如果有,那么实现这种功能的正确技术是什么?无需任何研究,从我的头顶,将QT

我正在为必须支持简单“占位符”宏的文档开发富文本编辑器,生成一些程序定义的文本。想想MS Word中的“字段”功能:

宏必须在可编辑文档中表示为只读文本的穿孔,用户可以剪切/复制/粘贴,但不能编辑。它必须存储一些技术信息

理想的解决方案是文本的只读范围,与文档的其余部分一起流动,并允许通过上下文菜单进行特殊交互。可接受的解决方案是使用单个元素(如css中的display:inline block)和自定义文本


有可能吗?如果有,那么实现这种功能的正确技术是什么?

无需任何研究,从我的头顶,将QTextEdit子类化,并在光标进入此类块时,或当当前选择甚至包含其中一部分时,将其切换为只读。当光标移动或选择更改时,应易于检测,并执行检查。另外,不要忘记拖放,您可能需要单独检查它们。此外,如果这真的很关键,请添加一些额外的检查以检查所有这些文本块,例如,在保存时,以防用户找到一种新的方法来更改它们。@hyde为了区分这些片段与常规文本,我必须将一些用户数据与它们关联。正确的方法是什么?我应该把它转换成QTextCharFormat吗?