自定义 QQuickItem 中的文本

Text in Custom QQuickItem

我正在实现一个自定义 QQuickItem,它应该能够制作线图(x 对 y)。出于性能原因,我使用 QSGNodes 进行了此操作。我想知道为 x-ticks 实现文本标签的最佳方法是什么(它们应该根据数据范围自动设置)。

我应该使用 QQuickPaintedItem 还是可以通过 QQuickItem 来实现?

或者是否可以在我的 C++ 文件中动态创建文本 qml 类型 (http://doc.qt.io/qt-5/qml-qtquick-text.html)?

不要over-complicate 重新发明轮子。 QML 已有 Text 类型。

有一个缺点 - 决定不 public API 以其 C++ 形式使用 C++ 中的 QML 类型。而且我不建议从 C++ 创建 QML 对象,它只会适得其反。

这意味着您的自定义 QML 类型不会纯粹用 C++ 实现,您可以在 C++ 中实现 "core" 东西,并且仍然在 QML 端组成完整的类型,您还可以在其中使用绑定、锚点、模型、定位器、动态作用域以及所有在 C++ 中难以实现的好东西。

这并不少见,很多常用的 QML 控件都是以这种方式实现的 - 一个暴露于 QML 的抽象 C++ 核心,它在 QML 语法中完成为一个完整的控件。