lido do arquivo de texto em qml qt / quick

1

Eu tenho um programa para visualizar imagens que armazenam o caminho de cada imagem (todas as imagens estão no meu computador) no arquivo de texto. primeiro eu abro o arquivo de texto e leio os caminhos das imagens linha por linha e os armazeno em uma lista, então eu faço a imagem de origem para a lista [i], (para i = 0 para números de imagens). ele retorna para mim algum erro assim:

QML Image: Cannot open: qrc:///D:/QtApp/Gui_qml_app/res/1.png%0D
DirectShowPlayerService::doSetUrlSource: Unresolved error code 800c000d

este é o meu arquivo de texto:

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

e este é o meu código:

           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++;

todos podem me ajudar?

    
por Meh D 30.06.2014 / 14:13

2 respostas

1

O erro DirectShow nos diz que você está executando no Windows e, na maioria das vezes, as novas linhas são codificadas com \r\n nessa plataforma.

Antes de atribuir o caminho de origem do item, remova o \r extra:

list[i+1] = list[i+1].replace(/(\r\n|\n|\r)/gm,"");
item.source = String(list[i+1])
    
por Sylvain Pineau 30.06.2014 / 17:05
1

obrigado pela sua resposta. Eu mudo meu código abaixo e é muito bom trabalho

    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++;
    
por Meh D 30.06.2014 / 18:06