开发者

Qt: Strange Hover-Only transparency losing effects on a button

My Widget declares:

setAttribute(Qt::WA_NoSystemBackground);

In its paintEvent, I set:

painter.setOpacity(0.75);

This gives me the ability to project a png on its entire background with some transparency. This works well.

Problem: I am adding a QPushButton with a transparent png on top of my widget. The opaque portion of the button's image (derived from Qt CSS) is shown correctly, and the transparent areas remain with my widgets' drawn background, which is already somewhat transparent. When I HOVER over the image, my css dictates that my QPushButton changes image. When that happens, the opaque portion of the button image is shown correctly, but for the transparent areas, it's as if my own widget is re-drawing the background image, only with full opacity.

This happens on开发者_如何学JAVAly on Windows. On OS X is works fine. I was wondering whether there was a bug in Windows in that respect and if there's a workaround for it.


Turns out that while

setAttribute(Qt::WA_NoSystemBackground);

is good enough for OS X…

On windows you should also add:

setAttribute(Qt::WA_TranslucentBackground);

That took care of it. Problem resolved.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜