我有一个程序来预览图像,该程序将每个图像的路径(所有图像都在我的计算机中)存储在文本文件中。首先,我打开文本文件并逐行读取图像路径并存储到列表中,然后我将图像源放入列表 [i],(i=0 到图像数量)。它返回给我一些错误,如下所示:
QML Image: Cannot open: qrc:///D:/QtApp/Gui_qml_app/res/1.png%0D
DirectShowPlayerService::doSetUrlSource: Unresolved error code 800c000d
这是我的文本文件:
file:/D:/QtApp/Gui_qml_app/res/1.png
file:/D:/QtApp/Gui_qml_app/res/2.png
file:/C:/Users/info/Desktop/wall_images/3.png
这是我的代码:
property int i: -1
var request = new XMLHttpRequest()
request.open('GET','in.txt')
request.onreadystatechange = function(event) {
if (request.readyState == XMLHttpRequest.DONE) {
list = request.responseText.split('\n');
}
}
request.send()
item.source =String(list[i+1])
i++;
大家可以帮助我吗?
答案1
该DirectShow
错误告诉我们您正在 Windows 上运行,并且大多数情况下,\r\n
该平台上都使用换行符进行编码。
在分配项目源路径之前,删除多余的 \r
:
list[i+1] = list[i+1].replace(/(\r\n|\n|\r)/gm,"");
item.source = String(list[i+1])
答案2
谢谢你的回答。我在下面更改了我的代码,效果很好
property int i: -1
var request = new XMLHttpRequest()
request.open('GET','in.txt')
request.onreadystatechange = function(event) {
if (request.readyState == XMLHttpRequest.DONE) {
list = request.responseText.split('\n');
}
}
request.send()
item.source = String(list[i+1]).substring(0,String(list[i+1]).length-1)
i++;