2 Stimmen

Qt zeigt PNG-Bilder unter Linux nicht an

Ich habe eine Software geschrieben mit Qt die sowohl unter Windows als auch unter Linux funktionieren soll.

Ich verwende PNG-Bilder als Icons für meine QAction s, eingebettet in eine Ressource.

Ich habe das folgende Baumverzeichnis:

/
  resources/
    icons.qrc
    image.png

Hier ist der Inhalt von icons.qrc :

<RCC>
  <qresource prefix="/resources" lang="fr">
    <file alias="image.png">image.png</file>
  </qresource>
</RCC>

Ich erkläre meine QIcon so:

QIcon(":/resources/image.png")

Unter Windows funktioniert es gut, aber unter Linux (ich habe es bisher nur unter Ubuntu 10.4 versucht) werden die Bilder nicht angezeigt.

Gibt es irgendetwas Besonderes, das ich tun muss, damit das funktioniert? Ist dies ein Konfigurationsproblem?

Ich danke Ihnen.

0 Stimmen

Steht der zusätzliche Schrägstrich nicht am Anfang von /resources? Vielleicht kann er die Datei nicht finden.

0 Stimmen

@fabrizioM: Ich habe es versucht, aber leider funktioniert es nicht. Ich habe sogar versucht, direkt auf die Datei zu verlinken.

0 Stimmen

Ist Qt auf Linux kommt mit PNG-Dateien Format Unterstützung? Versuchen Sie zum Beispiel BMP oder JPG...

2voto

mosg Punkte 11715

Es scheint, als wäre alles in Ordnung mit deinem Code.

Versuchen Sie, diese Definition in Ihre Pro-Akte aufzunehmen. Ich bin mir nicht ganz sicher, aber wir können es trotzdem versuchen:

QTPLUGIN += qpng

und zu Ihrem mainwindow.cpp

#include <QtPlugin>
Q_IMPORT_PLUGIN(qpng)

0 Stimmen

Vielen Dank für Ihre Antwort. Sobald ich das getan habe, schlägt das Linken fehl, weil er "libqpng" nicht findet.

0 Stimmen

@mosg Ich habe es mit .bmp y .jpg ebenfalls ohne Ergebnis. Sollte es nicht zumindest diese beiden unterstützen? Ich werde versuchen, herauszufinden, mit welchen Optionen es kompiliert wurde.

0 Stimmen

@ereOn Haben Sie versucht, den absoluten Pfad zu den Bildern (mit verschiedenen Formaten) zu verwenden? Ich meine ohne die Verwendung von Ressourcen...

1voto

ereOn Punkte 50658

Ich habe herausgefunden, was los war.

Das hatte nichts damit zu tun, ob ich unter Linux oder Windows arbeitete, sondern lag am Gebietsschema.

Mein Linux-System ist auf Englisch, während mein Windows-System auf Französisch ist. Da die Ressourcen die lang="fr" Flagge, wurde auf nicht-französischen Betriebssystemen nichts angezeigt...

Ein dummer Fehler!

0voto

SeungHoon Punkte 1

Ich habe eine Lösung gefunden.

  • Unter Windows ==> kopieren Sie den Ordner "imageformats" im Qt-Systemordner in Ihren EXE-Programmordner.

  • Unter Linux ==> libpng-Paket installieren.

dann sehen Sie das PNG-Bild in Ihrem Programm.

Unter Ubuntu zeigt mein Programm keine PNG-Bilder an.
Ich habe das libpng-Paket installiert (libpng16.* : sudo apt-get install libpng16*), dann mein Programm angezeigt PNG-Bild (Symbolleiste Schaltfläche, Splash-Fenster, und etwas).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X