Seite 1 von 1

Bild in Layout Laden

Verfasst: 2. Juli 2009 14:10
von energetic
Hi, ich bin grade am verzeifeln, wie man ein Bild aus einer Datei lädt und dieses in ein Layout einfügt. Ein Bild ist ja kein Widget, deshalb versuche ich es mit QLabel::setPixmap bzw. setPicture. keins von beiden klappt. Der bekommt die Datei einfach nich geladen. hier der Code:

Code: Alles auswählen

	QLabel *pictureLabel = new QLabel();
	pictureLabel->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
	pictureLabel->setAlignment(Qt::AlignCenter);
	pictureLabel->setMinimumSize(208, 485);
	QHBoxLayout *pictureLayout = new QHBoxLayout();
	pictureLayout->addWidget(pictureLabel);
	QPicture picture;
	if(!picture.load("/home/xxxxxxxx/Projekte/Millionär/share/img/test.png"))
		qDebug() << "Fehler beim Laden!!!";
	pictureLabel->setPicture(picture);
	
    //"layout" wurde weiter oben erzeugt
	layout->addLayout(pictureLayout)
MfG energetic

Verfasst: 2. Juli 2009 14:35
von Christian81
Und was genau geht nicht?

Verfasst: 2. Juli 2009 14:40
von Strahlex
1. Sollte man Pfade niemals absolut angeben
2. QLabel::setPixmap()

Verfasst: 2. Juli 2009 14:55
von energetic
also, wenn ich das Programm starte, kommt von QDebug "Fehler beim Laden!!!" deshalb muss der Fehler beim Laden in der Zeile 8 liegen. Aber ich weiß net woran.

@ Strahlex:
Ich verwende normalerweise ein Resourcen-System, welches ich in diesem Projekt aber noch nicht erstellt habe.
Und sowohl QLabel::setPixmap als auch QLabel::setPicture funktionieren nicht.

Verfasst: 2. Juli 2009 15:38
von upsala
Kann ein QPicture überhaupt png's laden? Und selbst wenn, wäre ein QImage/QPixmap besser dafür geeignet.

Verfasst: 2. Juli 2009 20:38
von energetic
Nun, ich weiß nicht genau, aber ich habs ja auch mit QPixmap probiert.
Soweit ich weiß ist png aber OpenSource und wird deshalb sehr wahrscheinlich unterstützt werden.

Aber das löst mein Problem leider nicht...

Verfasst: 2. Juli 2009 21:31
von energetic
nun es geht jetzt :lol:
Der Code:

Code: Alles auswählen

	QHBoxLayout *imageLayout = new QHBoxLayout();
	QLabel *imageLabel = new QLabel();
	imageLabel->setPixmap(QPixmap(iconPath));
	imageLayout->addWidget(imageLabel);
Keine Ahnung warum es jetzt geht. ich könnte schwören gestern ging das nicht. Aber seis drum... Problem gelöst

thx für die Hilfe

Mfg energetic

Verfasst: 2. Juli 2009 22:27
von Strahlex
PNG wird auf allen Systemen unterstützt. :wink: