Python 如何在pyside QWidget中有一个透明的背景,但保持其子项不透明

Python 如何在pyside QWidget中有一个透明的背景,但保持其子项不透明,python,css,qt,pyqt,pyside,Python,Css,Qt,Pyqt,Pyside,我有一个小部件,其中包含很多子部件,我想将其背景设置为透明,但使其子部件不透明 我正在使用PySide 1.2.1 win7 我试过这样的方法: self.setAttribute(Qt.WA_半透明背景,True) self.setStyleSheet(“背景色:rgba(40,40150150);边框:0px;”) 但这对我不起作用。它使整个小部件透明。我想让孩子们保持不透明。有人能帮我吗?非常感谢你。这是我的代码,谢谢你的帮助 我怀疑真正的问题是您指定的样式表正在传播到子窗口小部件

我有一个小部件,其中包含很多子部件,我想将其背景设置为透明,但使其子部件不透明

我正在使用PySide 1.2.1 win7

我试过这样的方法:


self.setAttribute(Qt.WA_半透明背景,True)


self.setStyleSheet(“背景色:rgba(40,40150150);边框:0px;”)


但这对我不起作用。它使整个小部件透明。我想让孩子们保持不透明。有人能帮我吗?非常感谢你。这是我的代码,谢谢你的帮助



我怀疑真正的问题是您指定的样式表正在传播到子窗口小部件

所以,删除

self.setStyleSheet("background-color:rgba(40,40,150,150);border:0px;")
并用类似于以下内容覆盖
QWidget::paintEvent

def paintEvent(self, event):
    painter = QPainter(self)
    painter.fillRect(self.rect(), QColor(40, 40, 150, 150))

您的示例包含的内容太多。你能移除所有不必要的东西吗?我也没有看到透明的小部件。一切都是蓝色和黑色的。。。
def paintEvent(self, event):
    painter = QPainter(self)
    painter.fillRect(self.rect(), QColor(40, 40, 150, 150))