Seite 1 von 1
Qlabel mit Bild in einem QWidget unter Win ME
Verfasst: 8. April 2010 21:53
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]
Verfasst: 9. April 2010 06:28
von Christian81
Stimmt der Pfad, wird das Bild überhaupt geladen?
Verfasst: 9. April 2010 08:55
von RavenIV
Ist das Bild vielleicht ein jpg?
Dann könnte sein, dass das plugin (qjpeg4.dll) fehlt.
Verfasst: 10. April 2010 14:13
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
jpeg plugin
Verfasst: 10. April 2010 16:17
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" );
Re: jpeg plugin
Verfasst: 10. April 2010 19:10
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.
oh sorry
Verfasst: 10. April 2010 19:50
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" );
Verfasst: 10. April 2010 23:23
von Christian81
Oder wie gesagt - plugins weglassen und nichts in der main.cpp angeben.
Verfasst: 11. April 2010 09:10
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