我们正在使用 QtQuick/QML 构建图形用户界面。我们有一些来自数据库的动态多行文本,它们应该显示在应用程序中。目前,我们使用 Text
元素来显示文本。但是,我们需要一些内联嵌入到文本中的 QML 组件。为此,来自数据库的文本包含诸如 ::checkbox|1::
之类的占位符,然后应由程序替换和显示这些占位符。
在 HTML 中,这很容易,您只需将内联元素与文本混合即可产生如下结果:
但在 QML 中,这似乎更困难,因为如果没有足够的空间,Text
元素不能被分词成两半(文本和容器大小都应该是动态的) .
我们能想出的最佳解决方案是创建一个 Flow
布局,每个单词都有一个 Text
元素,但这似乎太老套了。
在 HTML 中使用 RichText
是不够的,因为我们确实需要文本中的自定义 QML 元素。
此外,由于性能原因,我们希望避免使用 WebView
。
是否有仅使用 QML/C++ 实现此功能的复杂方法?
最佳答案
您可以创建自定义小部件并将它们嵌入到 QML 中: Writing QML Extensions with C++
关于c++ - Qt/QML : Text with inline QML elements,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48796947/