4.7並且喜歡在qgraphicsview上疊加兩個圖像。頂部的圖像應該是半透明的,以便透過它。最初,兩幅圖像都完全不透明。我期望一些函數爲每個像素設置一個全局的alpha值,但似乎沒有這樣的函數。最接近它的是QPixmap :: setAlphaChannel(const QPixmap & alphaChannel),但是,自Qt-4.6以後,它被標記爲廢棄。相反,手冊引用了QPainter的CompositionModes,但我沒有成功將透明度添加到像我想要的不透明圖像。 任何人都可以指向我的工作示例或共享一些代碼?如何使QImage或QPixmap半透明 - 或爲什麼setAlphaChannel已過時?
編輯: 我幾乎很抱歉有一個自己的答案,現在就提問後幾個小時。 從這article我發現下面的代碼完成這項工作。我只是想知道這是否被認爲是「更好」(通常意味着更快),而不是按照像素方式修改alpha值。
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));
謝謝你做了我的問題我用QPainter :: CompositionMode_Source :) – jamk 2013-01-24 13:44:44