Seite 1 von 1

[gelöst] Pixmap anzeigen

Verfasst: 12. Mai 2005 16:15
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

Verfasst: 12. Mai 2005 16:29
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.

Verfasst: 12. Mai 2005 16:46
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 &' "

Verfasst: 12. Mai 2005 16:59
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.

Verfasst: 12. Mai 2005 17:09
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?

Verfasst: 12. Mai 2005 17:14
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.

Verfasst: 12. Mai 2005 17:16
von moo
Ok, danke!

Verfasst: 3. Juni 2005 14:12
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

Verfasst: 11. September 2005 15:50
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