成都网站建设设计

将想法与焦点和您一起共享

怎么在pyqt5中设置窗体透明控件-创新互联

怎么在pyqt5中设置窗体透明控件?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

创新互联自2013年创立以来,先为尼河口等服务建站,尼河口等地企业,进行企业商务咨询服务。为尼河口企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
// 窗体透明,控件不透明
self.setWindowFlags(Qt.FramelessWindowHint | Qt.Tool)
self.setAttribute(Qt.WA_TranslucentBackground)

补充:【解决问题】pyqt5设置窗体透明,而上面的控件不透明

在做软件的时候想把QWidget设置成透明的,我在网上搜了各种答案:

有说设置qss背景属性的:background: transparent; 但是这样就全透明了。如图3

还有qss里设置 background:rgba(0,0,0,0.2)也是一样的,还是会完全透明

网上查的这些代码也没有用:

setWindowOpacity(0.7);
setAttribute(Qt::WA_TranslucentBackground, true);
setAttribute(Qt::WA_TranslucentBackground);

有说用QGraphicsOpacityEffect设置的:大事难事这样整个widget上的控件也透明了,如图2。

op = QtWidgets.QGraphicsOpacityEffect()
op.setOpacity(0.5)
你的控件.setGraphicsEffect(op)
你的控件.setAutoFillBackground(True)

怎么在pyqt5中设置窗体透明控件

图一(原图) 图二 图三

但是我希望工具栏wiget自身透明,而上面的控件保持原状。吐槽:真是奇了怪了,qss内置了那没多css的属性,怎么会没有一个不透明度的属性呢???

于是我想着要不要重叠两个widget,下面一个按照下面的方法半透明,上面的变成全透明然后再放各种控件,理论上应该可行,但是这样太麻烦了我迟迟没动手。

过了一天以后,我灵光一闪!我直接把widget的背景上面放一个半透明的图片不就可以了吗!!我真是个小机灵鬼! 于是我打开ps弄了一张透明度为50%的白色图片保存成png模式,然后qss里面设置一下:

#Tool_Widget{
 border-radius: 10px;
 border-image: url(img/toolbg.png)
}

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联网站建设公司,的支持。


本文标题:怎么在pyqt5中设置窗体透明控件-创新互联
标题网址:http://chengdu.cdxwcx.cn/article/hisii.html