[gelöst] Pixmap anzeigen

Alles rund um die Programmierung mit Qt
Antworten
moo
Beiträge: 12
Registriert: 10. Mai 2005 16:34
Wohnort: Ulm

[gelöst] Pixmap anzeigen

Beitrag von moo »

Hallo.

Ich möchte ein kleines Bild anzeigen lassen. Dazu habe ich ein Pixmap
erstellt und das in ein QHBLayout geladen.

Code: Alles auswählen

QHBoxLayout* hbl4 = new QHBoxLayout();
QLabel* label = new QLabel(this);
bild = new QPixmap( "vertex_22x22.PNG" );         
label->setPixmap( *bild );
label->setText( "picture" );
hbl4->addWidget( label );
...
ges->addLayout ( hbl4 );  //Pixmap
Leider wird das Bild nicht angezeigt, sondern nur der Text.

Kann mir jmd. sagen woran das liegen könnte? Kann Qt nur bestimmte Formate lesen?


moo
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

Hi,

ich würde das so lösen:

Code: Alles auswählen

QHBoxLayout* hbl4 = new QHBoxLayout(); 
QLabel* label = new QLabel(this); 
QPixmap bild( "vertex_22x22.PNG" );          
label->setPixmap( &bild ); 
label->setText( "picture" ); 
hbl4->addWidget( label ); 
... 
ges->addLayout ( hbl4 );  //Pixmap
Zu der anderen Sache mit setText und setPixmap, soweit ich weiß geht nur eines von beiden und setText kommt als 2. also völlig logisch, das hier nur Text kommt.
moo
Beiträge: 12
Registriert: 10. Mai 2005 16:34
Wohnort: Ulm

Beitrag von moo »

Bei deiner Variante bekomme ich folgende Fehlermeldung,
die ich vorher auch schon hatte und erst mit

Code: Alles auswählen

label->setPixmap(*bild);
beseitigen konnte.

" 'QLabel::SetPixmap' : cannot convert parameter 1 from 'QPixmap *' to 'const QPixmap &' "
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

Ich bin ein wenig verwundert. Was benutzt du denn für dein Arbeiten mit Qt? Windows und nmake? Linux und gcc?

Denn selbst so steht es in der Doku und ich habe ja bisher nie ein Pixmap anders verwendet.
moo
Beiträge: 12
Registriert: 10. Mai 2005 16:34
Wohnort: Ulm

Beitrag von moo »

windows und cmake...

Deshalb bin ich ja so verzweifelt, überall sieht man dass es so geht, nur bei mir wird das Bild nicht angezeigt...

Bei

Code: Alles auswählen

label->setPixmap(bild);
meckert er nicht mehr, aber das Bild erscheint immer noch nicht.

Hab eben mal auf isNull () getestet...hat true geliefert...heißt das das Bild wird nicht geladen?
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

isNull heißt das es nichtmal erstellt wurde.
isEmpty heißt das es leer ist bei Qt

Aber wenn sowas mit dem QPixmap nichtmal konform geht, muss der Fehler irgendwo anders liegen, denn was nützt ein CrossPlattform Toolkit, wenn du den ganzen Code anders schreiben musst?

Such mal an einer anderen Stelle nach dem Problem, evtl. probiert es einfach mal mit dem .NET Framework von MS, da sollte nmake dabei sein(wurde mit erzählt), und da probierst mal, ob es da geht.
moo
Beiträge: 12
Registriert: 10. Mai 2005 16:34
Wohnort: Ulm

Beitrag von moo »

Ok, danke!
moo
Beiträge: 12
Registriert: 10. Mai 2005 16:34
Wohnort: Ulm

Beitrag von moo »

Nur als Ergänzung:
so hat es dann doch noch geklappt

Code: Alles auswählen

QHBoxLayout* hbl = new QHBoxLayout(); 
QLabel* label = new QLabel(this); 
QImage image("xxx.bmp");
QPixmap pixmap;
label->setPixmap(image);
Grüße
moo
kowi1134
Beiträge: 120
Registriert: 1. Mai 2005 17:48
Wohnort: Arnsberg

Beitrag von kowi1134 »

moo hat geschrieben:Bei deiner Variante bekomme ich folgende Fehlermeldung,
die ich vorher auch schon hatte und erst mit

Code: Alles auswählen

label->setPixmap(*bild);
beseitigen konnte.

" 'QLabel::SetPixmap' : cannot convert parameter 1 from 'QPixmap *' to 'const QPixmap &' "
Das Muss wohl daran liegen, dass Die Funktion setPixmap eine Referenz auf ein Pixmapobjekt übernimmt und keinen Zeiger auf selbiges :)

Ciao
Antworten