画像の上に半透明の長方形を描画して、ハイライトとして機能させようとしています。残念ながら、私が試したものは、私が望む透明効果を実行できるようには見えません. 代わりに、透明度のない塗りつぶされた四角形を取得します。
これが私が今していることです:
void PageView::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
QImage img=...;
painter.drawImage(0, 0, img);
...
// draw a light blue, transparent rectangle to highlight
QRect rect=...;
painter.fillRect(rect, QColor(128, 128, 255, 128));
...
}
残念ながら、私にとっては、これは、アルファ値を与えるために期待する半透明の長方形ではなく、真っ青な長方形を描画します。QBrush
また、中間体QImage
またはQPixMap
で遊んでみましたpainter.setCompositionMode(...)
。これまでのところ運がありません。
したがって、私の質問: Qt に半透明の長方形を描画するように説得するにはどうすればよいPageView
ですか?
編集: 関連する場合は、Windows の Qt 4.8.1 でこれをビルドしています。