web-dev-qa-db-de.com

Image source kann nicht in QML Image geladen werden

Dies scheint wirklich einfach zu sein, aber aus irgendeinem Grund kann ich die Bildquelle nicht dazu bringen, in der ultra-einfachen QML-App unten zu funktionieren. 

Zu Ihrer Information, ich verwende Mac OS-X 10.9.5, Qt Creator 3.2.1 basierend auf 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"
    }
} 

Ich erhalte folgende Fehlermeldung:

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

Das Anwendungsfenster wird erstellt, aber es wird kein Bild angezeigt. Ich habe auch versucht, das Bild in ein Rechteck einzuwickeln, aber das hilft nicht.

Was mache ich hier falsch?

Die Datei "testImage.png" befindet sich im Projektverzeichnis. Ich habe alle Möglichkeiten ausprobiert, den Bildpfad mithilfe der absoluten, relativen und sogar der manuellen Angabe der Bildquelle mit dem QML-UI-Designer anzugeben.

Ich möchte auch erwähnen, dass ich, um Qt 5.3.2 zum Laufen zu bringen, der vorgeschlagenen Abänderung HIER gefolgt ist.

Vielen Dank.

15
Bruce Dean

Ich nehme an, Ihre qml-Datei befindet sich in Ressourcen. Versuchen Sie, Ihr testImage.png-Bild auch in Ressourcen zu platzieren. App neu kompilieren, ausführen und prüfen, ob das Image ordnungsgemäß funktioniert.

Alles sollte zusammen sein. Zum Beispiel:

enter image description here

Mein Code:

Image
{
    source: "images/earth.png"

Wenn ich dieses Abbild aus den Ressourcen lösche, wird auch diese Fehlermeldung angezeigt, das Abbild befindet sich jedoch noch an der richtigen Stelle im Dateisystem.

Wenn qml source in der Ressource abgelegt wurde, sollten sich auch alle Dateien, die von qml geladen werden, in der Ressource befinden (Qt durchsucht diese Dateien in den Ressourcen, nicht im Dateisystem).

29
Chernobyl

Wenn Sie vom lokalen Dateisystem aus suchen, geben Sie den Dateipfad und das Präfix "file:" als source = "file:/root/Desktop/Rathod.png"

3
user11311318

Es kann zwei Probleme geben:

  1. Das Bild ist beschädigt, obwohl das Bild in allen Vorschauen korrekt angezeigt wurde. IconImage weigert sich, es zu laden. Versuchen Sie, ein anderes Bild zu verwenden, das als richtig funktioniert. Der Qt Image Loader reagiert anscheinend sehr empfindlich auf das Bildformat.
  2. Es liegt ein Ressourcen-Cache-Problem vor. Versuchen Sie, qml_qmlcachea.qrc In Ihrem Kompilierungsordner zu löschen und versuchen Sie es erneut
0
Alfredo cubitos

Wenn Sie qrc verwenden, stellen Sie sicher, dass das Bild zu Ihrem Projekt hinzugefügt wird. Es reicht vielleicht nicht aus, es nur in Ihrem Quellverzeichnis zu haben Zum Beispiel befindet sich meine main.qml in einem bestimmten Verzeichnis. Ich verschiebe mein .png in dasselbe Verzeichnis. Ich füge dann "Vorhandene Dateien hinzufügen" hinzu und füge das .png zum Projekt hinzu. Mein Bild hat die folgende -Quelle: "qrc: /image.png"

0
Richard Jessop