Я создал класс, который наследует QQuickImageProvider класс, , но я хочу использовать requestImage()
функцию QQuickImageProvider установить переменную QImage, но я не знаю, как сделать это, как мне нужно, что Qimage переменную из объект класса, который был обработан в QML из ContextProperty и хочет использовать переменную id в качестве значений индекса для извлечения QImage из списка. Вот основной код функции:Использование QImage С QQuickImageProvider
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
ImageProvider *imageProvider = new ImageProvider;
QQmlApplicationEngine engine;
PageBuffer p;
engine.rootContext()->setContextProperty("p",&p);
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
engine.addImageProvider("images", imageProvider);
return app.exec();
}
PageBuffer р содержит список QImages, что мне нужно представить с помощью QQuick ImageProvider, когда определенное значение индекса для списка был выбран пользователем. Вот фрагмент кода QML, в котором я хочу передать значение индекса в imageprovider, он отображает элемент изображения, который отображает один из элементов из списка Qimages, который сохраняется в объекте PageBuffer:
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
images.image=p.img
// main.source="image://image/1"
// main.source=p.image
// console.log(mod.get(index).fileUrl)
// main.source=p.image;
// currentimage=m.image;
}
}
}
Можете ли вы объяснить еще одну вещь? переменная двигателя здесь была объявлена в main.cpp, как я буду использовать ее в функции requestimage? – Javeria
вы можете передать ссылку на QQuickEngine через конструктор ImageProvider и сохранить его в частном члене внутри класса – folibis
Я объявил объект ImageProvdier «ImageProvider * imageProvider = new ImageProvider;» Можете ли вы объяснить, как я должен ссылаться на нее? – Javeria