此代码正确显示图像:
Configuration.Auditing.Selectors.Add(
new NamedTypeSelector(
"BackgroundJobs",
type => typeof(IBackgroundJob<TestClass>).IsAssignableFrom(type)
)
);
此代码不起作用有效,我的意思是未显示图片:
Image {
source: Qt.resolvedUrl("file:" + "C:\\Users\\m3\\AppData\\Local\\Temp\\sli\\3d.png")
}
在QML上登录Image {
source: Qt.resolvedUrl("file:" + cpplib.path + "\\" + "3d.png")
}
:
path
C:\Users\m3\AppData\Local\Temp\sli
在C ++上登录console.log(cpplib.path)
:
path
"C:\\Users\\m3\\AppData\\Local\\Temp\\sli"
如何以跨平台的方式将图像源路径从C ++发送到QML?
通过以下方式记录图像源:
QString path = // ...
qDebug() << path;
导致:
qml: image source: file:///C:/Users/m3/AppData/Local/Temp/sli/3d.png
我连续设置图像源:
Image {
// ...
onSourceChanged: {
console.log("image source:", source)
}
}
令我惊讶的是,imageID.source = Qt.resolvedUrl("file:" + cpplib.path + "\\3d.png")
imageID.source = Qt.resolvedUrl("file:" + "C:\\Users\\m3\\AppData\\Local\\Temp\\sli\\3d.png")
中的日志显示两者实际上是相同的:
onSourceChanged
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
答案 0 :(得分:0)
这两个语句都可以正常工作:
imageID.source = Qt.resolvedUrl("file:" + cpplib.path + "\\3d.png")
imageID.source = Qt.resolvedUrl("file:" + "C:\\Users\\m3\\AppData\\Local\\Temp\\sli\\3d.png")
问题原因是不是图片source
或URL格式。原因是我偶尔试图在图像存在之前就显示图像! @folibis评论引导了我正确的方向。