Image über Label anzeigen

Alles rund um die Programmierung mit Qt
Antworten
Timebeast
Beiträge: 22
Registriert: 21. August 2007 21:48
Wohnort: Hann.-Münden

Image über Label anzeigen

Beitrag 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
mastercad
Beiträge: 8
Registriert: 24. Juli 2008 07:59
Kontaktdaten:

Beitrag 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
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Schau dir noch mal die Doku zu dieser Zeile an:

Code: Alles auswählen

  bild.fromImage(image); 
Chris81T
Beiträge: 82
Registriert: 4. Mai 2008 00:06
Wohnort: Urbar

Beitrag 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ß
Timebeast
Beiträge: 22
Registriert: 21. August 2007 21:48
Wohnort: Hann.-Münden

Beitrag 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
Antworten