Wie man ein QImage oder QPixmap-semi-transparent - oder warum ist setAlphaChannel veraltet?

4,7 und wie überlagern Sie zwei Bilder auf einen qgraphicsview. Das Bild oben ist semi-transparent, um zu ermöglichen, durch Sie sehen. Zunächst werden die beiden Bilder sind komplett undurchsichtig. Ich erwartete eine Funktion für die Einstellung eines globalen alpha-Wert für jedes pixel vorhanden ist, aber wie es scheint, gibt es keine solche Funktion. Die nächste Sache ist QPixmap::setAlphaChannel(const QPixmap & alphaChannel), die jedoch als veraltet markiert, da die Qt-4.6. Statt das Handbuch bezieht sich auf die CompositionModes von QPainter, aber ich glaube nicht gelingt, Transparenz hinzufügen, ein undurchsichtiges Bild, wie ich es will.
Könnte jemand mir ein Beispiel oder einige code?

Edit:
Ich bin fast Leid dafür, dass eine eigene Antwort, jetzt nur wenige Stunden nachdem die Frage.
Aus diesem Artikel ich herausgefunden, dass der folgende code macht den job. Ich Frage mich nur ob das als "besser" (oft übersetzt, um schneller) als änderung der alpha-Werte pixelwise.

QPainter p; 
p.begin(image);
p.setCompositionMode(QPainter::CompositionMode_DestinationIn);
p.fillRect(image->rect(), QColor(0, 0, 0, 120));
p.end();            
mpGraphicsView->scene()->addPixmap(QPixmap::fromImage(image->mirrored(false,true),0));  

InformationsquelleAutor FFox | 2010-11-13

Schreibe einen Kommentar