web-dev-qa-db-fra.com

Impossible de charger la source d'image dans l'image QML

Cela semble très basique, mais pour une raison quelconque, la source de l'image ne peut pas fonctionner dans l'application QML ultra-simple ci-dessous. 

Pour info, j'utilise Mac OS-X 10.9.5, Qt Creator 3.2.1 basé sur Qt 5.3.2. 

import QtQuick 2.3
import QtQuick.Controls 1.2

ApplicationWindow {
    visible: true
    width: 640
    height: 480
    title: qsTr("Test")

    Image {
        id: image1
        x: 10
        y: 10
        width: 100
        height: 100
        source: "testImage.png"
    }
} 

Je reçois l'erreur suivante:

qrc:/main.qml:10:5: QML Image: Cannot open: qrc:/testImage.png

La fenêtre de l'application est créée mais aucune image n'est affichée. J'ai également essayé d'envelopper l'image dans un rectangle, mais cela n'aide pas.

Qu'est-ce que je fais mal ici?

Le fichier "testImage.png" se trouve dans le répertoire du projet et j'ai essayé de nombreuses façons de spécifier le chemin de l'image à l'aide de ressources absolues, relatives et même de spécifier manuellement la source de l'image à l'aide du concepteur d'interface utilisateur QML.

Je mentionnerai également que pour faire fonctionner Qt 5.3.2, j’ai suivi la modification suggérée ICI .

Merci.

15
Bruce Dean

Je suppose que votre fichier qml est en ressources, essayez donc de placer également votre image testImage.png en ressources. Recompilez l'application, lancez-la et vérifiez si l'image fonctionne correctement.

Tout devrait être ensemble. Par exemple:

enter image description here

Mon code:

Image
{
    source: "images/earth.png"

Si je supprime cette image des ressources, j'obtiendrai également cette erreur, mais l'image sera toujours au bon endroit dans le système de fichiers.

Lorsque qml source est placé dans la ressource, tous les fichiers chargés à partir de qml doivent également figurer dans la ressource (Qt recherche ces fichiers dans les ressources, pas dans le système de fichiers).

29
Chernobyl

Si vous utilisez qrc, assurez-vous que l'image est ajoutée à votre projet. Le simple fait de l'avoir dans votre répertoire source peut ne pas suffire ... .. Par exemple, mon fichier main.qml se trouve dans un répertoire particulier. Je déplace mon fichier .png dans le même répertoire. Je puis "Ajouter des fichiers existants .." et ajoute le .png au projet. Mon image a les informations suivantes: Source: "qrc: /image.png"

0
Richard Jessop