2012-05-24 11 views
6

Ich versuche eine QLabel() Anzeige eines pixmap JPG Bildes aus einer Datei zu haben (die nicht in einer Ressourcendatei sein kann, da sie aus dem Internet heruntergeladen wurde), aber ich habe Probleme beim Laden. Der Code ist ziemlich einfach:QLabel() lädt keine Pixmap wenn es ein JPG Bild ist

label = QLabel() 
label.setPixmap(QPixmap("image.jpg")) 

Es arbeitet mit PNG Dateien, aber es funktioniert nicht mit JPG Dateien arbeiten. Ich habe viel gegoogelt und festgestellt, dass ich den Ordner "imageformats" in den gleichen Ordner legen musste, in dem sich mein Skript befindet. Aber selbst nachdem dies gemacht wurde (und ja, qjpeg4.dll und andere sind da), funktioniert es immer noch nicht. Ich habe auch versucht

path = r"C:\Users\Deusdies\Documents\Work\myapp\imageformats" 
app.addLibraryPath(path) 

, aber das hat auch nicht geholfen.

Erneut lädt es PNGs gerade gut, aber es lädt nicht JPGs. Ich habe auch schon vorher bemerkt, dass es ICO entweder nicht laden wird, aber ich dachte darüber nach wie ein nicht verwandtes Problem - aber so scheint es jetzt nicht.

Es ist erwähnenswert, dass die Anwendung zu diesem Zeitpunkt nicht zu einem .exe konvertiert wird - es wird über Interpreter über PowerShell ausgeführt.

Meine Entwicklungsumgebung ist Windows 7 x64, pyside 1.1.0

Wie kann ich dieses Problem lösen?

+0

Was Qt-Version? Um verfügbare Bildformate zu sehen: 'list = QImageReader.supportedImageFormats()' dann 'print()' diese Liste. – dschulz

+0

Sind Sie sicher, dass das Bild nicht in einem anderen Format vorliegt, nur mit der Erweiterung '.jpg'? – dschulz

+0

@dschulz: Ich habe folgendes: [PySide.QtCore.QByteArray ('bmp'), PySide.QtCore.QByteArray ('pbm'), PySide.QtCore.QByteArray ('pgm'), PySide.QtCore.QByteArray ('png '), PySide.QtCore.QByteArray (' ppm '), PySide.QtCore.QByteArray (' xbm '), PySide.QtCore.QByteArray (' xpm ')] Offensichtlich fehlt das JPG. Irgendeine Idee, wie man es hinzufügt? Auch ja ich bin 100% sicher, dass es ein JPG ist. –

Antwort

5

Ich löste das Problem. Zuerst sollte, Pfad wie folgt aussehen:

path = r"C:\Users\Deusdies\Documents\Work\myapp" 

(so ohne "imageformats" -Teil)

Und zweitens, ich war ein Idiot. Ich habe eine Instanz der Klasse QDialog() erstellt, bevor Sie die addLibraryPath()

+0

jetzt gibt es ein anderes Problem ausstehende .. Warum es mit PNG-Bildern funktioniert? ;-) – dschulz

+2

Das liegt daran, dass die PNG-Unterstützung kein entsprechendes Plugin in imageformats/hat, es ist entweder enthalten oder nicht abhängig von der allgemeineren Qt-Konfiguration. –

+0

Danke, @ DanielVérité – dschulz

Verwandte Themen