Qlabel mit Bild in einem QWidget unter Win ME

Alles rund um die Programmierung mit Qt
Antworten
acdc
Beiträge: 82
Registriert: 23. Oktober 2007 18:56

Qlabel mit Bild in einem QWidget unter Win ME

Beitrag von acdc »

Hallo,

ich habe ein QWidget mit fixer größe und möchte nun ein Bild in diesem Widget anzeigen.

Code: Alles auswählen

setFixedSize(200,200);
QVBoxLayout *layout=new QVBoxLayout(this);
setLayout(layout);
imageLabel=new QLabel(this);

imageLabel->setBackgroundRole(QPalette::Base);
imageLabel->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
imageLabel->setScaledContents(true);

layout->addWidget(imageLabel);

QImage image(pfad);
imageLabel->setPixmap(QPixmap::fromImage(image));

Dies funktioniert unter Windows xp. Jedoch benötige ich diese Funktion unter Windows ME und da wird das Bild nicht angezeigt. Ich benutzte die Version Qt4.5.

Muss ich da ein repaint oder so einfügen?

danke acdc[/quote][/code]
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Stimmt der Pfad, wird das Bild überhaupt geladen?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
RavenIV
Beiträge: 267
Registriert: 21. Januar 2009 14:24
Wohnort: Waldshut

Beitrag von RavenIV »

Ist das Bild vielleicht ein jpg?
Dann könnte sein, dass das plugin (qjpeg4.dll) fehlt.
Linux, das längste Text-Adventure aller Zeiten
acdc
Beiträge: 82
Registriert: 23. Oktober 2007 18:56

Beitrag von acdc »

Christian81 hat geschrieben:Stimmt der Pfad, wird das Bild überhaupt geladen?

Code: Alles auswählen


path="c:/test.jpg";

qDebug()<<path;

QImage image(path);

if(image.isNull())
    return;

leider ist image.isNull() immer true. Das Bild ist vorhanden und der Pfad stimmt. Die dll ist vorhanden!

öffne ich hingegen ein bmp auf die selbe Weise, so wird das Bild angezeigt...

acdc
softwaremaker
Beiträge: 149
Registriert: 1. April 2009 19:25

jpeg plugin

Beitrag von softwaremaker »

Qt benötigt das JPEG-Plugin um ein JPEG laden zu können und du musst es mitliefern.

Lege im Pfad deiner fertigen EXE ein Unterverzeichnis "plugins" an und darin wieder ein Unterverzeichnis "imageformats". Dort hinein packst du die Datei "qjpeg4.dll" aus C:\Qt\2009.03\qt\plugins\imageformats.

Update:
zusätzlich muss der plugin-Pfad bekannt gemacht werden:
In der main.cpp nach QApplication a(argc, argv); füge hinzu:

qApp->addLibraryPath( qApp->applicationDirPath() + "/plugins" );
Zuletzt geändert von softwaremaker am 10. April 2010 19:52, insgesamt 1-mal geändert.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: jpeg plugin

Beitrag von Christian81 »

softwaremaker hat geschrieben:Lege im Pfad deiner fertigen EXE ein Unterverzeichnis "plugins" an und darin wieder ein Unterverzeichnis "imageformats"
Falsch - das plugins-Directory ist nicht nötig bzw. so geht es nicht - sieh Doku.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
softwaremaker
Beiträge: 149
Registriert: 1. April 2009 19:25

oh sorry

Beitrag von softwaremaker »

@Christian81: hast recht, ich habe vergessen was mit anzugeben

in main.cpp nach QApplication a(argc, argv); füge hinzu:

qApp->addLibraryPath( qApp->applicationDirPath() + "/plugins" );
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Oder wie gesagt - plugins weglassen und nichts in der main.cpp angeben.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
acdc
Beiträge: 82
Registriert: 23. Oktober 2007 18:56

Beitrag von acdc »

Danke für eure Hilfe!
Habe das Problem nun gefunden:
Hatte zuerst die dlll`s aus dem Ordner

C:\qt\2009.03\bin\imageformats

benutzt und die funktionierten nicht, da man hier eine neue Version von Windows benötigt.

Plugins aus diesem Ordner sind für Win Me zu gebrauchen!

C:\qt\2009.03\qt\plugins\imageformats

danke
acdc
Antworten