Archiv verlassen und diese Seite im Standarddesign anzeigen : Qt: QLabel + Image Problem
Hi Leute,
Ich versuche grad eine Image Datei in einem QLabel (QImageLabel?) zu laden. Dabei benutze ich diese Code:
void Form1::init()
{
QImage image("./images/mouse.png");
image.create(16, 16, 32);
image.fill(qRgba(0, 0, 0, 0));
image.setAlphaBuffer(true);
pixmapLabel2->setPixmap( image );
}
Aber statt Image bekome ich nur ein Paar Pixel angezeigt. :( woran kann es liegen?
--> void QLabel::setPixmap ( const QPixmap & ) <--
Mit ist ein Rätsel, wie der Compiler bei dir ein QImage akzeptieren konnte.
Eigentlich will setPixmap() eine Referenz auf ein QPixmap und nicht auf ein QImage (sagt die API-Dokumentation zu QLabel).
Mit ist ein Rätsel, wie der Compiler bei dir ein QImage akzeptieren konnte. Eigentlich will setPixmap() eine Referenz auf ein QPixmap.
Der scheint's wohl nicht so genau zu nehmen :)
Deshalb sieht das Bild bestimmt so zerrupft aus.
QPixmap my_pix;
my_pix.convertFromImage(image);
dann das my_pix in das Label2 kleben dürfte das Bild zum Vorschein bringen
(nicht getestet)
so long,
BlueJay
Vielen dank für die Antworten.
Ich habe das Problem gelöst, es war sogar noch einfacher als ich gedacht habe:
void Form1::init()
{
QImage image("./images/mouse.png");
pixmapLabel2->setPixmap( image );
}
Mir ist ein Rätsel, wie der Compiler bei dir ein QImage akzeptieren konnte.
Eigentlich will setPixmap() eine Referenz auf ein QPixmap und nicht auf ein QImage (sagt die API-Dokumentation zu QLabel).
Ich weis nciht wieso aber mit QImage geht es zimlich einfach ;)
Naja das könnte entwieder ein Bug sein (und zwar ein ziemlich gute :D), oder qlabel aczeptiert es so.
Der scheint's wohl nicht so genau zu nehmen
Deshalb sieht das Bild bestimmt so zerrupft aus.
QPixmap my_pix; my_pix.convertFromImage(image);
Was genau macht QPixmap? Wenn ich das richtig verstanden habe zeigt er Image an, die man mit QImage lädt?
MfG
chapaev
Hi
Ich schätze mal das QImage wird angenommen, da QPixmap einen constructor hat, der ein QImage nimmt und der compiler das erkennt.
Ein QPixmap/QImage stehen gleichberechtigt nebeneinander - QPixmap ist für das Zeichnen auf den Bildschirm optimiert, QImage dagegen für Image Manipulationen.
@chapaev:
Dein Problem verstehe ich nicht.
In deinem code lädst du zuerst die Datei ./images/mouse.png in ein QImage. Dann wirfst du dieses image weg und erstellst ein neues mit der Grösse 16x16 bei 32 bpp, füllst es schwarz und fügst einen alpha channel hinzu (den du aber nicht benutzt).
Dem code nach sollte dein label also jetzt ein 16 mal 16 Pixel grosses schwarzes Bild anzeigen. Aus deiner Fragestellung schliesse ich dass du aber eigentlich mouse.png haben willst? Oder wo ist das problem?
In diesem Fall reicht doch ein einfaches
QPixmap pix("./images/mouse.png");
pixmapLabel2->setPixmap(pix);
CU
Andi
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.