c++ - Qt/QML : Text with inline QML elements

标签 c++ qt text qml qt-quick

我们正在使用 QtQuick/QML 构建图形用户界面。我们有一些来自数据库的动态多行文本,它们应该显示在应用程序中。目前,我们使用 Text 元素来显示文本。但是,我们需要一些内联嵌入到文本中的 QML 组件。为此,来自数据库的文本包含诸如 ::checkbox|1:: 之类的占位符,然后应由程序替换和显示这些占位符。

在 HTML 中,这很容易,您只需将内联元素与文本混合即可产生如下结果:

enter image description here

但在 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/

相关文章:

c++ - 如何从已知像素值构建 QImage

linux - 如何在 Linux 中包含 Qt 库 (qwebview.h)?

r - 是否可以在 R 中删除重复的句子/文本 block ?

c++ - 如何将模型传递到 qml 中的播放列表?

c# - 解析文本文件的多个部分 C#

html - 如何在 CSS 中在更大的圆圈内制作圆圈,并在所有圆圈的中心制作文本?

c++ - 如何将 CMake 子项目中定义的静态库链接到其他子项目中的目标?

c++ - 无法制作 Cuda 程序

c++ - 段错误背包问题

c++ - 将 IP 地址分成八位字节,但使用 sscanf 跳过第一个八位字节