Seite 1 von 1

Bild in Quellcode einbinden

Verfasst: 16. April 2007 16:30
von daniil
Hallo leute,

nach mehrstündigen erfolglosen Versuchen das Problem selbständig zu lösen, frage ich doch lieber die Profis :)

Ich möchte gern ein Bild in einem widget statisch anzeigen. Nun habe ich es in Designer als pixmal label eingefügt und die Quelldatei (png) gewählt. Alles stimmt, Vorschau (Ctrl+t) funktioniert wie geplant. Wenn ich das Projekt kompiliere und starte, dann ist aber kein Bild mehr da :-o , nicht mal der Platzhalter dafür. In der ui-datei ist das bild allerdings drin:
<widget class="QLabel">
....
<property name="pixmap">
<pixmap>farbverlauf_150_12.png</pixmap>
</property>
</widget>


Ich vermute, dass qt die entsprechende Quelldatei fürs Bild nicht findet. Aber wo sucht er die? (habe die bilddatei ins Verzeichnis mit ui-datei und mit dll-library platziert - kein Erfolg)

Nun habe ich mal ne andere ui-datei mit sehr ähnlichem widget mir angeschaut. Da ist das bild als bitfolge direkt in ui-datei integriert.
<widget class="QLabel">
....
<property name="pixmap">
<pixmap>image0</pixmap>
</property>
</widget>

<images>
<image name="image0">
<data format="PNG" length="1133">89504e........</data>
</image>
</images>


Nun die wichtigste Frage: wie bringt man qt-designer dazu, dass er statt des Pfades zur Quelldatei einfach das ganze bild in der ui-datei speichert?

Danke für eure Hilfe.

Daniil

Verfasst: 17. April 2007 07:32
von Volker
In die Ui Datei speichert er's nicht, aber Du kannst eine qrc Datei erstellen, die dann in eine .CPP Datei übersetzt werden kann. Die kannst Du in dein Quellcode einbinden und hast Zugriff auf die darin abgelegten Resourcen.

Siehe dazu auch:
http://doc.trolltech.com/4.2/designer-resources.html
und
http://doc.trolltech.com/4.2/resources.html

Verfasst: 17. April 2007 12:06
von daniil
Hallo Volker,

danke für die Antwort. Gibt es diese qrc-dateien auch in den älteren qt-Versionen? Ich benutze noch die 3.3.5 Version.
Im zweiten Beispiel, das ich aufgeführt habe ist das Bild aber wirklich in der ui-datei abgespeichert (s. Abschnitt images). Wie macht man denn das?

<widget class="QLabel">
....
<property name="pixmap">
<pixmap>image0</pixmap>
</property>
</widget>

<images>
<image name="image0">
<data format="PNG" length="1133">89504e........</data>
</image>
</images>


Daniil

Verfasst: 17. April 2007 12:16
von Christian81
Ja, da gibt es qembed bzw. den Eintrag 'IMAGES' in der pro-Datei.