如何在QQuickItem中绘制文本

时间:2015-04-14 15:31:00

标签: qt qquickitem

我一直在网上搜索如何在QQuickItem上绘制或渲染文字,但无济于事。我选择不使用使用QPainter paint()函数的QQuickPaintedItem。除此之外,在iOS视网膜显示设备上还存在已知的QQuickPaintedItem问题,其中显示模糊且边缘不清晰。

请告知任何可能的解决方法。

2 个答案:

答案 0 :(得分:1)

  

由于QtDeclarative已经被弃用,我选择不使用   QQuickPaintedItem使用QPainter paint()函数

这句话没有多大意义。 QtDeclarative是QtQuick1,QQuickPaintedItem是QtQuick2模块的一部分,与QtDeclarative无关。此外,即使它使用QPainter,它仍然使用OpenGL进行硬件加速。

重载自定义QQuickItem以手动绘制文本,无需QPainter或任何其他类似类的帮助,这将是一项非常复杂的任务。

QQuickItem基本上是QML Item元素背后的类。 QML还有一个Text元素。 QML专为快速UI开发而设计,手动绘制文本完全没有意义。你不需要任何C ++,只需要QML:

Item {
    Text {
        text: "something"
    }
}

查看Text元素及其属性,您可以指定字体,颜色等等。您也可以直接将元素用作图形效果的源。

答案 1 :(得分:0)

您可以使用QPainter在QImage上进行绘制,例如画布。然后,您可以将其转换为可以分配给QSGSimpleTextureNode的QSGTexture。

这是我最近为此编写的代码摘录:

checkbox

在上下文中具有完整工作代码的存储库为here

有很多原因想要这样渲染。您可以在3D空间中旋转一个到QSGNodes。