QML: wie Sie angeben-image-Datei-Pfad relativ zur Anwendung Ordner

Entwickeln wir unsere ersten Qt/QML Anwendung (versuchen Technologie). Während die Technik sieht sehr vielversprechend auf einen Blick, die wir hatten, so viele unerwartete seltsame Probleme, die fast aufgeben, ganz am Anfang.

Hier eine solche Frage.

Wollen wir folgende Ordner-layout für unsere Anwendung:

--> ApplicationFolder
|--> qml        //QML files (also structured by subfolders)
|--> resources  //Application resources (images, sounds, data-files, etc.)
| |--> images   //Image resources (also structured by subfolders)
| |--> data     //Different data files
| |--> ...      //Other resources
|--> Application.exe   //Application executable
|--> *.dll             //DLLs application depends on

Das problem ist, dass in der Bestellung angeben-image-Datei für Image QML-Element muss ein Pfad relativ zum QML-Datei?! Das ist absolut verrückt. Während der Entwicklung Dateien, die manchmal zwischen Ordnern verschoben (Sie bewegen QML-Datei und zu beheben alle Weg hat?!); einige andere QML-Dateien zu finden, um gleiche Bild (gleiche Bild, Ressource, sondern unterschiedliche tatsächliche Pfad in verschiedenen QML-Dateien).

Die Frage ist also: wie um das Bild zu geben Pfad relativ zum application-Ordner? Ist es überhaupt möglich?

Vielen Dank im Voraus!

PS. Mithilfe der Qt-resource-system (wenn die Ressourcen sind eingebettet in eine ausführbare Datei) ist nicht eine option, in unserem Fall. Wir brauchen Rohstoffe auf der Festplatte (einschließlich QML-Dateien selbst, zumindest während der Entwicklungsphase).

PPS. Schrieb diese Frage nach einen ganzen Tag zu verbringen, das Problem zu beheben, indem ich mich über die Dokumentation/google/stackoverflow; aber ohne Erfolg (die meisten Beispiele verwenden die Ressource einbetten, andere sind zu einfach und nur relative Pfade verwenden).

  • This is absolutely insane. During development files sometimes moved between folders (you move QML file and have to fix all the path it has ?!); -> Was ist verrückt zu entwickeln, während die Entwicklung Satz? Natürlich, wenn Sie nicht design es richtig, nur cargo-cult programming, müssen Sie möglicherweise zu implementieren Zeug mit neuem design. Ist es auch verrückt, dass Sie benennen etwas, das überall, wenn Sie benennen Sie etwas, weil du erkennst, dass du da falsche name für eine variable? Komm, Alexey... 🙂 Sed ist dein Freund ...
  • Das ist verrückt, weil, wenn die image-Datei bleiben an der gleichen Stelle, dann ist es absolut normal zu wünschen, um die Referenz zu dieser Datei bleiben die gleichen in der Anwendung code und hängen nicht von bewegten andere Dinge. Nicht ? Wenn einige QML-Datei finden Sie einige Bild-und dieses Bild zu bleiben an der gleichen Stelle die ganze Zeit, warum man ein Problem lösen müssen, dass QML jedes mal, wenn er will, um es zu verschieben in andere Ordner ? Das ist das, was ich bin reden über. Bei der Verwendung von qrc-Dateien, die Sie haben kein solches problem, aber mit raw-Ressourcen, die wir einfach nicht finden können, eine Lösung, leider.
Schreibe einen Kommentar