Pergunta

Não vejo isso na documentação em nenhum lugar, então provavelmente não existe, mas apenas para o caso:

Eu tenho uma função que aceita como parâmetro um vetor de qimages. Cada Qimage foi carregado do disco em algum momento e não foi editado-é apenas lido. Idealmente, o que eu gostaria de fazer é fazer um loop sobre todos os Qimages e produzir uma lista de seus caminhos de arquivo para um arquivo XML.

Infelizmente, não estou vendo na documentação de forma alguma no caminho original do arquivo da qual a imagem foi carregada. Portanto, minha pergunta é: é possível, dada apenas uma QIMAGE, para descobrir de que caminho de arquivo a QIMAGE foi originalmente carregada ou não?

Algo parecido com:

QSTRING QIMAGE :: GetoriginalFilePath ();

Eu sei que essa é provavelmente uma pergunta fútil, mas sempre vale a pena fazer uma chance, suponho.

(Estou usando o QT 4.7, a propósito.)

Foi útil?

Solução

Eu olhei através do código e essas informações não parecem salvar em qualquer lugar. QIMAGE :: Load (e o construtor) usa QIMAGERER (nome do arquivo, formato) .read () e, em seguida, copia o resultado para si mesmo. O QIMAGERER está configurado para excluir a representação do dispositivo (o objeto de arquivo aberto) assim que terminar de ler.

Então, em resumo, parece que isso não é possível.

Outras dicas

Também para mim, parece que o QIMAGE não fornece uma interface para obter seu caminho. Eu também acho que esse não é um recurso ausente, porque não há necessidade de amarrar um Qimage a um caminho específico. Na maioria de todos os casos de uso, o Qimage não possui arquivo físico correspondente.

Portanto, a melhor maneira da sua situação seria subclassem Qimage e adicionar este recurso:

class MyImage : public QImage {
   QString path_;
public:
   MyImage(const QString& path); 
   QString path(); // getter 
};

Eu omito os detalhes da implementação.

Normalmente, crio uma estrutura para manter o Qimage e o caminho da imagem.

struct Image
{
    QImage imageData;
    QString filename;
};
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top