Frage von PsychoPate, 24

[ProgramiererFrage] Hallo liebe Community, wie kann ich meiner Qt App Bilder hinzufügen, welche auch in die Android App deployt werden?

Ich schreibe derzeit eine Qt Applikation, welche sowohl auf dem Desktop als auch mobil unter Android laufen soll. Leider schaffe ich es nicht, Bilder einzufügen, welche ich in der Android App verweden kann. Auf dem Desktop hingegen werden meine Bilder ohne Probleme angezeigt. Ich habe schon sämtliche Pfadangaben etc. ausprobiert und werde einfach nicht schlau. Eingebunden werden die Bilder über eine Resource Datei:

<RCC>
    <qresource prefix="/main">
        <file>main.qml</file>
        <file>QuitDialog.qml</file>
        <file>SettingsBar.qml</file>
        <file>StartScreenButton.qml</file>
        <file>MqttConnection.qml</file>
    </qresource>
    <qresource prefix="/icons">
        <file alias="back_button">icons/chevron20.svg</file>
        <file alias="settings_button">icons/cog2.svg</file>
        <file alias="power_button">icons/power27.svg</file>
    </qresource>
</RCC>

Anschließend versuche ich - in meinem Fall einem Button - eines der Bilder hinzuzufügen:

iconSource: "qrc:///icons/back_button"

In meiner Linux Anwendung funktioniert das auch soweit. Ich habe das Gefühl, die Bilder werden nicht in die Android APK gepackt, denn ich erhalte beim Starten folgende Fehler:

Invalid image data: qrc:///icons/back_button
Antwort
von DrErika, 24

Na, ich glaube eher, der kann mit dem SVG-Format nichts anfangen. Lösung könnte sein, stattdessen ein PNG-Format zu nehmen, oder aber du musst in deinem Project-File (*.pro) +=SVG einfügen, damit er die Fähigkeit hinzufügt, SVG-Dateien zu erkennen und zu lesen.

Kommentar von DrErika ,

Achja, und außerdem musst du die Bilder-Ressourcen im Projekt-Dialog hinzufügen (s. http://doc.qt.io/qtcreator/creator-mobile-app-tutorial.html - Adding Resources)

Kommentar von PsychoPate ,

Hey vielen Dank. Es lag einfach nur daran, dass die Bilder als SVGs eingebunden waren *kopfschüttel*.
Was ich daran trotzdem noch nicht verstehe ist, wieso die Desktopanwendung auch mit SVGs umgehen konnte. Als Ressourcen hinzugefügt waren Sie ja alle..
Naja nichtsdestotrotz vielen Dank für den hilfreichen Rat!

Kommentar von DrErika ,

Das ist eine Besonderheit für Android-Devices. Dort muss man offenbar explizit im *.pro die SVG-Library hinzufügen (mit +svg eben).

Keine passende Antwort gefunden?

Fragen Sie die Community