Qt:奇怪的悬停 - 只有透明度会失去对按钮的影响

时间:2011-09-19 16:46:21

标签: qt

My Widget声明:

setAttribute(Qt::WA_NoSystemBackground);

在paintEvent中,我设置了:

painter.setOpacity(0.75);

这使我能够以一定的透明度在整个背景上投影png。这很有效。

问题:我在我的小部件顶部添加了一个带透明png的QPushButton。按钮图像的不透明部分(源自Qt CSS)显示正确,透明区域保留在我的小部件的绘制背景中,这已经有些透明。当我对图像施加影响时,我的css要求我的QPushButton改变图像。当发生这种情况时,按钮图像的不透明部分会正确显示,但对于透明区域,就好像我自己的小部件正在重新绘制背景图像,只有完全不透明。

仅在Windows上发生这种情况。在OS X上运行正常。我想知道在这方面是否存在Windows中的错误以及是否存在解决方法。

1 个答案:

答案 0 :(得分:1)

原来是

setAttribute(Qt::WA_NoSystemBackground);

对OS X来说已经足够了......

在Windows上你还应该添加:

setAttribute(Qt::WA_TranslucentBackground);

照顾它。问题解决了。