Question

Je ne vois pas cela dans la documentation partout, donc il n'existe probablement pas, mais juste au cas où:

J'ai une fonction qui accepte comme paramètre un vecteur de QImages. Chaque QImage a été chargé à partir du disque à un moment donné et n'a pas été modifié - il est juste de lire à partir. Idéalement ce que je voudrais faire est en boucle sur toutes les QImages et la production d'une liste de leurs chemins de fichiers dans un fichier XML.

Malheureusement, je ne vois pas dans la documentation aucune façon d'obtenir sur le chemin du fichier d'origine que l'image a été chargé. Donc, ma question est, est de savoir quel chemin de fichier du QImage a été chargé à partir ou non possible, étant donné que QImage,?

Quelque chose le long des lignes de:

QString QImage :: getOriginalFilepath ();

Je sais que cela est probablement une question futile, mais son tir a toujours la peine de demander, je suppose.

(j'utilise Qt 4.7, par le chemin.)

Était-ce utile?

La solution

je regardais à travers le code, et que l'information ne semble pas être sauvé partout. QImage :: load (et le constructeur) utilise QImageReader (fileName, format) .Lire (), puis copie le résultat lui-même. Le QImageReader est configuré pour supprimer la représentation de l'appareil (l'objet de fichier ouvert) dès que la lecture finie de lui.

Donc, en résumé, il semble que cela est impossible.

Autres conseils

De plus pour moi, il semble que QImage ne fournit pas une interface pour obtenir son chemin. Je pense aussi que ce n'est pas une fonctionnalité manquante, parce qu'il n'y a pas besoin d'attacher un QImage à un chemin spécifique. Dans la majorité des cas d'utilisation du QImage n'a pas de fichier physique correspondant.

La meilleure façon dans votre situation serait de sous-classe QImage et ajouter cette fonctionnalité:

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

Je laisse les détails de mise en œuvre.

Je crée généralement une struct pour tenir le QImage et le chemin d'image.

struct Image
{
    QImage imageData;
    QString filename;
};
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top