1
我創建了QPixmap
並在其上使用QPainter
繪製了較小的QPixmap
s。我想用圖像作爲QQuickItem
的背景。是否有捷徑可尋?將背景圖像添加到QQuickItem
我創建了QPixmap
並在其上使用QPainter
繪製了較小的QPixmap
s。我想用圖像作爲QQuickItem
的背景。是否有捷徑可尋?將背景圖像添加到QQuickItem
如果您的自定義項目從QQuickItem
派生你可以,也許這種方式重新定義QQuickItem::updatePaintNode()
:
QSGNode *MyItem::updatePaintNode(QSGNode *oldNode, QQuickItem::UpdatePaintNodeData *)
{
QSGSimpleTextureNode *node = static_cast<QSGSimpleTextureNode *>(oldNode);
if (!node) {
node = new QSGSimpleTextureNode();
QSGTexture *texture = window()->createTextureFromImage(m_pixmap.toImage());
node->setTexture(texture);
}
node->setRect(boundingRect());
return node;
}
注意的是:你的產品的QSGTexture *texture
主人,不要忘記刪除它,而對象的破壞。
謝謝!像魅力一樣工作。 – user3358451
什麼是window()?我從'QSGNode'派生出來,並且創建並使用了一個'QQuickWindow'類型的新對象。這是正確的嗎? –
[QQuickItem :: window()](http://doc.qt.io/qt-5/qquickitem.html#window) – folibis