My Widget声明:
setAttribute(Qt::WA_NoSystemBackground);
在paintEvent中,我设置了:
painter.setOpacity(0.75);
这使我能够以一定的透明度在整个背景上投影png。这很有效。
问题:我在我的小部件顶部添加了一个带透明png的QPushButton。按钮图像的不透明部分(源自Qt CSS)显示正确,透明区域保留在我的小部件的绘制背景中,这已经有些透明。当我对图像施加影响时,我的css要求我的QPushButton改变图像。当发生这种情况时,按钮图像的不透明部分会正确显示,但对于透明区域,就好像我自己的小部件正在重新绘制背景图像,只有完全不透明。
仅在Windows上发生这种情况。在OS X上运行正常。我想知道在这方面是否存在Windows中的错误以及是否存在解决方法。
答案 0 :(得分:1)
原来是
setAttribute(Qt::WA_NoSystemBackground);
对OS X来说已经足够了......
在Windows上你还应该添加:
setAttribute(Qt::WA_TranslucentBackground);
照顾它。问题解决了。