Рабочий код
Этот код показывает изображение правильно:
Image {
source: Qt.resolvedUrl("file:" + "C:\\Users\\m3\\AppData\\Local\\Temp\\sli\\3d.png")
}
Неверный код
Этот код не работает, я имею в виду изображение не отображается:
Image {
source: Qt.resolvedUrl("file:" + cpplib.path + "\\" + "3d.png")
}
Журнал QML пути
Журнал path
в QML:
console.log(cpplib.path)
C:\Users\m3\AppData\Local\Temp\sli
Журнал C ++ пути
Ведение журнала path
на C ++:
QString path = // ...
qDebug() << path;
"C:\\Users\\m3\\AppData\\Local\\Temp\\sli"
Как я могу отправить исходный путь изображения из C ++ в QML в кроссплатформенном способе?
ОБНОВЛЕНИЕ
Регистрация источника изображения с помощью:
Image {
// ...
onSourceChanged: {
console.log("image source:", source)
}
}
приводит к:
qml: image source: file:///C:/Users/m3/AppData/Local/Temp/sli/3d.png
ОБНОВЛЕНИЕ
Я установил источник изображения последовательно:
imageID.source = Qt.resolvedUrl("file:" + cpplib.path + "\\3d.png")
imageID.source = Qt.resolvedUrl("file:" + "C:\\Users\\m3\\AppData\\Local\\Temp\\sli\\3d.png")
К моему удивлению, журналы внутри onSourceChanged
показывают, что два фактически одинаковы:
onSourceChanged: {
console.log("image source:", source)
}
qml: image source: file:///C:/Users/m3/AppData/Local/Temp/sli/3d.png
qml: image source: file:///C:/Users/m3/AppData/Local/Temp/sli/3d.png