Seite 1 von 1

Image über Label anzeigen

Verfasst: 29. Juli 2008 19:02
von Timebeast
Nachdem meine letzten Versuche relativ erfolglos waren, habe ich mich erstmal mit kleineren Projekten befasst. Dies hier funktioniert schonmal:

Code: Alles auswählen

	QString fileName;
	QPixmap image;
	
	fileName = QFileDialog::getOpenFileName(this); 
	image.load(fileName);
	ui.label->setPixmap(image);
Jedoch einen Schritt weiter, und schon geht nichts mehr und ich kann mir nicht erklären warum:

Code: Alles auswählen

	int y=0;
	int i=0;
	int breite=80;		//breite des Bildes
	int hohe=60;		//höhe des Bildes

	QPixmap bild;
	QImage image(breite, hohe, QImage::Format_RGB32);
	QRgb value;

	value = qRgb(250, 0, 0);
	
	for (i=0; i<hohe; i++){
		for (y=0; y<breite; y++){
			image.setPixel(y, i, value);
		}
	}
	 
	bild.fromImage(image); 
	ui.label->setPixmap(bild);
Igendlich sollte da doch nun ein 80x60 Pixel großes Bildchen rauskommen, komplett rot, naja fast rot halt (250->255, egal halt).
Aber das Label bleibt leer,...

Jemand vielleicht ne Idee?

Gruß
Ralf

Verfasst: 29. Juli 2008 19:19
von mastercad
musses denn nen image sein? nen QLabel kannst viel schneller und einfacher mit ner Farbe füllen.

hier mal nen kleiner Beispielcode :

Code: Alles auswählen

#include <QtGui>

int main( int argc, char *argv[])
{
	QApplication app( argc, argv);
	QWidget widget;
	QVBoxLayout *layout = new QVBoxLayout( &widget);
	
	QLabel* label = new QLabel();
	label->resize(200,50);
	label->move(100,100);
	label->setText( QObject::trUtf8( "Background Test"));
	label->setAlignment( Qt::AlignCenter);

	QPalette palette = label->palette();
	palette.setColor(QPalette::Window,Qt::green);
	label->setPalette( palette);
	label->setAutoFillBackground( true );
	layout->addWidget( label);
	
	widget.setLayout( layout);
	widget.show();
	
	return app.exec();
}
ich hoffe das hilft dir weiter

mfg
CAD

Verfasst: 29. Juli 2008 20:35
von upsala
Schau dir noch mal die Doku zu dieser Zeile an:

Code: Alles auswählen

  bild.fromImage(image); 

Verfasst: 29. Juli 2008 21:01
von Chris81T
Noch ne andere Sache, die event. interessant sein könnte (weis ja net, für was du die Bilder benötigst):

Schau mal in der Doku nach QResource, falls du deine Pic's als Resource mit den Sourcen integrieren möchtest. War für mich ne interessante Sache bei einer Integrierung eines Logo's für en SW-Projekt

Gruß

Verfasst: 29. Juli 2008 21:44
von Timebeast
Moin,

nein, :oops: , ich den Rückgabewert von .fromImage übersehen, mist, danke upsala.

Für alle dies vielleicht intressiert:

Code: Alles auswählen

bild=QPixmap::fromImage(image);
muß es natürlich heißen.

@mastercad:
ääh, danke, aber...ich meine, ich hab mir den Code mal angesehen, sieht nen bissel nach "ha, versuch das mal zu verstehen..." Ich meine, schöne Auflistung was man alles mit Qlabel machen kann, Danke :wink: hatte aber wenig mit meiner Frage zu tun :roll:

@Chris81T:
Mit "Pic's als Resource" mit in das Projekt margen hatte ich bei meiner Studienarbeit. Glücklicherweise ist das schon wieder 1,5Jahre her, und ich darf mich seiddem nur noch an Mikrocontrollern austoben. Keine wirlichen Klassen, und keine Vererbung...Ralfs Traum :lol:

Gruß an alle und Danke
Ralf