私は QQuickImageProvider を使用しており、requestimage 関数でクラス オブジェクト (PageBuffer) を使用しています。
class ImageProvider : public QQuickImageProvider{
public:
explicit ImageProvider();
virtual QImage requestImage(int id, QSize *size, const QSize& requestedSize,PageBuffer p);
~ImageProvider();
};
PageBuffer オブジェクトに保存された変数を使用して ImageProvider の QImage を設定し、id をインデックスとして使用したい
QImage ImageProvider:: requestImage(int id, QSize *size, const QSize &requestedSize,PageBuffer p) {
return p.imagelist[id];
}
イメージプロバイダーを呼び出したいQMLファイルは次のとおりです。
Image{
x: 4
y: 4
height : imagerec.height
visible: true
width : imagerec.width
anchors.fill: imagerec
source:fileUrl
Text{
id:txt
x: 0
y: 71
text:"Sketch"+(index+1)
horizontalAlignment: txt.AlignHCenter
font.family: "Tahoma"
color:"#ffffff"
}
MouseArea {
anchors.rightMargin: -59
anchors.bottomMargin: -39
anchors.fill: parent
onClicked: {
p.index=index;
p.image=mod.get(index).fileUrl
main.source="image://image/"+index
}
}
}