0

我正在计划一个新的桌面应用程序。它将为 HL7 文件(OSS 项目)提供一个所见即所得的编辑器。HL7 是医院常用的一种结构化文件格式,用于在系统之间交换数据。

格式的基本结构由\r 分隔的记录组成。一条记录可以有 N 个|分隔的字段。字段本身可以细分为组件^,子组件&和字段可以重复~(类似于数组)。每种消息类型都有不同数量的字段/组件和子组件。可以省略记录末尾的空字段。

简单记录示例: OBX|14|NM|0050–5^Calcium||8.9|mg/dl|8.4–10.4||||F

我已经实现了一个高效的解析器,它将整个文件转换为 C 中的分层数据结构。我想实现一个允许像在文本编辑器中编辑这些文件的应用程序。我想在任何时候保留底层的层次结构数据结构,因此很容易在用户更改时快速验证每个字段的结构和内容。

另外值得注意的是,我已经实现了一个查看器,其中文档结构显示在QTreeView. 该结构使用QAbstractItemModel.

现在我的实际问题是:我将如何解决在 Qt 中使用带有结构化数据模型的文本编辑器的问题。我做了一些研究:

  • 有一个QDomDocument,似乎可以使用 xml 数据。我可以将我的结构转换为 XML,但是 dom 对象可以与文本编辑器一起使用吗?
  • 有没有办法将像文档模型这样的树绑定到QTextEditor QPlainTextEdit
  • 是否可以将 a 绑定到orQAbstractItemModel中的文档?QTextEditQPlainTextEdit

解决一旦通过在文本字段中编辑更改文本和/或严格性而更新树的文本表示的问题的最佳方法是什么?

性能和跨平台能力很重要,所以这个项目将用 C++ 实现。

感谢您提供任何建议和示例,如果您有的话。

-S

4

0 回答 0