PNG-Datei in QWidget anzeigen

Alles rund um die Programmierung mit Qt
reinki0013
Beiträge: 174
Registriert: 11. November 2008 09:37
Wohnort: AUT

PNG-Datei in QWidget anzeigen

Beitrag von reinki0013 »

Hallo zusammen!

also ich möchte in meinem QWidget gerne ein *.png-Datei einbinden...
Ich hab jetzt auch schon alles durchgeschaut, aber ich finde nichts...

Ich hätts so probiert, funktioniert aber nicht:

Code: Alles auswählen

QImage img("Test.png");
ui.label->setPixmap(QPixmap::fromImage(img));
aber das geht nicht, weiß echt net wie das funzt...

wäre toll wenn ihr mir weiterhelfen könnt...

danke

lg
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Und das Bild existiert in dem Pfad, in dem du suchst? Warum wandelst du eigentlich von QImage nach QPixmap und läst das QPixmap nicht direkt laden?
reinki0013
Beiträge: 174
Registriert: 11. November 2008 09:37
Wohnort: AUT

Beitrag von reinki0013 »

upsala hat geschrieben:Und das Bild existiert in dem Pfad, in dem du suchst? Warum wandelst du eigentlich von QImage nach QPixmap und läst das QPixmap nicht direkt laden?
ja also ich habs auch schon mit einem anderen pfad probiert, also die direkte pfad angabe...

wenn ich das so probiere

Code: Alles auswählen

  
QPixmap pix("System.png");
ui.label->setPixmap(pix);
gehts auch net...

ich versteh das überhaupt net, wie kann ich das bloß im widget anzeigen lassen?
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag von AuE »

Code: Alles auswählen

QPixmap pix;
if (pix.load("pixmap.png")
label->setPixmapmap(pix);
else
qDebug() << "How to load smth. that isn't there?"
reinki0013
Beiträge: 174
Registriert: 11. November 2008 09:37
Wohnort: AUT

Beitrag von reinki0013 »

AuE hat geschrieben:

Code: Alles auswählen

QPixmap pix;
if (pix.load("pixmap.png")
label->setPixmapmap(pix);
else
qDebug() << "How to load smth. that isn't there?"
also wenn ich das so mache, dann steht "TextLabel" im Label drinnen und das Bild (.png) wird trotzdem nicht angezeigt...

ich bekomme nämlich bei "load" false zurück...

was könnte da das problem sein?

lg
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Am genau den gleichen Problem wie hier: http://qtforum.de/forum/viewtopic.php?t=9960
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
reinki0013
Beiträge: 174
Registriert: 11. November 2008 09:37
Wohnort: AUT

Beitrag von reinki0013 »

Christian81 hat geschrieben:Am genau den gleichen Problem wie hier: http://qtforum.de/forum/viewtopic.php?t=9960
ja das hab ich jetzt gemacht...
es is trotzdem so, dass diese datei nicht geladen wird, also "false" zurückkommt...

ich versteh das einfach überhaupt nimma...
habs jetzt zur sicherheit auch mal in den "debug"-ordner vom projekt kopiert, ändert aber auch nichts...

egal ob "Test.png" oder "D:\Projektmappe\Test.png", es kann nicht geladen werden, aber warum?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

D:\Projektmappe\Test.png ? Das hoffe ich doch wohl nicht...
Und wenn man QCoreApplication::applicationDirPath() benutzt funktioniert es auch.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Mani99
Beiträge: 244
Registriert: 15. April 2009 10:46
Wohnort: München

Beitrag von Mani99 »

Ich würde das ganze so machen:

Code: Alles auswählen

QString img_path = QString(QCoreApplication::applicationDirPath());
img_path.append(QDir::separator());
img_path.append("Test.png");
applicationDirPath liefert dir warscheinlich schon den pfad komplett zurück, aber wenn du noch in unterverzeichnisse willst, solltest du QDir::separator() verwenden, der gibt dir den nativen separator des betriebssystems zurück!
reinki0013
Beiträge: 174
Registriert: 11. November 2008 09:37
Wohnort: AUT

Beitrag von reinki0013 »

Christian81 hat geschrieben:D:\Projektmappe\Test.png ? Das hoffe ich doch wohl nicht...
Und wenn man QCoreApplication::applicationDirPath() benutzt funktioniert es auch.
ich kann dir aber sagen, dass es vollkommen egal ist welchen pfad ich nehme...

hab als beispiel mal "C:\Test.png" genommen, also einfach die Datei dort hinkopiert und er kann sie trotzdem nicht öffnen... ?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Ok nochmal - wenn Du wirklich C:\Test.png genommen hast würde der Thread in C++-Grundlagen wesentlich besser passen...
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
reinki0013
Beiträge: 174
Registriert: 11. November 2008 09:37
Wohnort: AUT

Beitrag von reinki0013 »

Christian81 hat geschrieben:Ok nochmal - wenn Du wirklich C:\Test.png genommen hast würde der Thread in C++-Grundlagen wesentlich besser passen...
natürlich habe ich

Code: Alles auswählen

pix.load("C:\\Test.png");
geschrieben.

Mein Programm läuft unter Windows, es hat auch nicht mit

Code: Alles auswählen

pix.load("C:/Test.png");
funktioniert.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Und was sagt QImageReader::supportedImageFormats() ?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
reinki0013
Beiträge: 174
Registriert: 11. November 2008 09:37
Wohnort: AUT

Beitrag von reinki0013 »

Christian81 hat geschrieben:Und was sagt QImageReader::supportedImageFormats() ?

Code: Alles auswählen

list	[15]
(
{"bmp" size=3},{"gif" size=3},{"ico" size=3},{"jpeg" size=4},{"jpg" size=3},{"mng" size=3},{"pbm" size=3},{"pgm" size=3},{"png" size=3},{"ppm" size=3}, ...)	QList<QByteArray>
+		[0]	{"bmp" size=3}	QByteArray
+		[1]	{"gif" size=3}	QByteArray
+		[2]	{"ico" size=3}	QByteArray
+		[3]	{"jpeg" size=4}	QByteArray
+		[4]	{"jpg" size=3}	QByteArray
+		[5]	{"mng" size=3}	QByteArray
+		[6]	{"pbm" size=3}	QByteArray
+		[7]	{"pgm" size=3}	QByteArray
+		[8]	{"png" size=3}	QByteArray
+		[9]	{"ppm" size=3}	QByteArray
+		[10]	{"svg" size=3}	QByteArray
+		[11]	{"tif" size=3}	QByteArray
+		[12]	{"tiff" size=4}	QByteArray
+		[13]	{"xbm" size=3}	QByteArray
+		[14]	{"xpm" size=3}	QByteArray
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

png ist dabei. Wenn C:/Test.png wirklich existiert dann ist es wohl kaputt. Was anderes kann ich mir nicht mehr vorstellen.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten