Max*_*rai 5 background pyqt transparent
我试着让窗户的背景透明.但是在它上面的小部件下,我看到了我桌面图像的一部分.现在我在构造函数中有这个:
Run Code Online (Sandbox Code Playgroud)self.setFocusPolicy(Qt.StrongFocus) self.setAttribute(Qt.WA_QuitOnClose,True) self.setBackgroundRole(QtGui.QPalette.Base) self.setAttribute(Qt.WA_NoSystemBackground)
小智 2
除了 gs 的回答之外,此常见问题解答还解释了为什么(在 Qt 4.5 之前)您无法实现此目标:
不直接支持部分透明,其中窗口是透明的,并且其上的小部件不在 Qt 中。
请记住,PyQt 的最新版本是针对 Qt 4.4 创建的,因此不支持您想要的半透明窗口。如果您将主窗口的背景颜色设置为透明以外的任何颜色,则 gs 的另一个答案,关于 setAutoFillBackground(True) 将会起作用。
另外,请参阅 Qt.WA_NoSystemBackground 的文档,它说您不能依赖迄今为止的透明效果:
表示widget没有背景,即当widget接收到绘制事件时,不会自动重新绘制背景。注意:与 WA_OpaquePaintEvent 不同,新暴露的区域永远不会填充背景(例如,在第一次显示窗口后,用户可以“透过”它看到它,直到应用程序处理绘制事件)。这是由小部件的作者设置/清除的。