Bild aus Pixmap wird nicht angezeigt

Alles rund um die Programmierung mit Qt
Antworten
chrootdev
Beiträge: 70
Registriert: 18. April 2008 17:52

Bild aus Pixmap wird nicht angezeigt

Beitrag von chrootdev »

Hallo,

ich habe eine eigene klasse von qlabel abgeleitet und möchte ein bild darauf setzen.

Das erledige ich mit qpixmap. Jedoch wird das bild nicht angezeigt, und ich weiß nicht warum. Das bild wird als resource eingebunden.

*.h

Code: Alles auswählen

#ifndef OBSLABEL_H
#define OBSLABEL_H

#ifdef BULD_DLL
	#define EXPORT_DLL Q_DECL_EXPORT //for windows
#else
	#define EXPORT_DLL
#endif

#include <QtGui/QLabel>
#include <QtCore/QObject>
#include <QtGui/QPixmap>

namespace obs_core {

	class EXPORT_DLL OBSHeaderLabel : public QLabel {

		Q_OBJECT

		public:
			OBSHeaderLabel();
		private:
			QPixmap *pm;
	};

}

#endif
*.cpp

Code: Alles auswählen

#include "obs_header_label.h"

obs_core::OBSHeaderLabel::OBSHeaderLabel():QLabel() {
	pm = new QPixmap();
	pm->load(":/images/header_logo.png");

	setPixmap(*pm);

	setStyleSheet("QLabel { background-color: white; border-bottom: 1px solid #000000;}");
	setFixedHeight(60);
}
Was läuft hier bei mir falsch?

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

Beitrag von Christian81 »

Zuerst einmal hast Du eine memleak - Du erzeugst mit new eine Instanz, löschst sie später aber nicht mehr.
Zum zweiten würde ich schauen ob QPixmap::load() true zurückgibt.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
rafilis1982
Beiträge: 34
Registriert: 6. Juni 2008 14:44

Beitrag von rafilis1982 »

Ich habe ein ähnliches Problem und stelle mal einfach meine Frage hierein um nicht unnötig ein neues Thema aufzumachen.

Folgende Situation:
Ich möchte ein QPixMap in ein vorhandes QWidget reinladen. Funktioniert soweit auch.

Also zuerst Qlabel erzeugt, dann über setPixmap Bild reingeladen.

Nur das Bild wird nicht entsprechend der Größe des Widgets verkleinert, sondern wirkt wie ausgeschnitten.

Maßnahmen wie scaled() in dem ich ihm die Größe des Widgets (ui.logo_tu->size) übergebe, funktionierten auch nicht.

Ausschnitt:

Code: Alles auswählen

logo_tu_pix.scaled(ui.logo_tu->size(),Qt::IgnoreAspectRatio);
Was muss ich machen, damit das Bild eintsprechend angepasst wird?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

rafilis1982 hat geschrieben: Was muss ich machen, damit das Bild eintsprechend angepasst wird?
Doku lesen
Returns a copy of the pixmap scaled to ...
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
rafilis1982
Beiträge: 34
Registriert: 6. Juni 2008 14:44

Beitrag von rafilis1982 »

Alles klar, danke!

Manchmal sieht man den Wald vor lauter Bäumen nicht ;)
Antworten