我一直在网上搜索如何在QQuickItem上绘制或渲染文字,但无济于事。我选择不使用使用QPainter paint()函数的QQuickPaintedItem。除此之外,在iOS视网膜显示设备上还存在已知的QQuickPaintedItem问题,其中显示模糊且边缘不清晰。
请告知任何可能的解决方法。
答案 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。