pyqt5 设置窗体透明控件不透明的操作
我就废话不多说了,大家还是直接看代码吧~
// 窗体透明,控件不透明 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)
图一(原图) 图二 图三
但是我希望工具栏wiget自身透明,而上面的控件保持原状。吐槽:真是奇了怪了,qss内置了那没多css的属性,怎么会没有一个不透明度的属性呢???
于是我想着要不要重叠两个widget,下面一个按照下面的方法半透明,上面的变成全透明然后再放各种控件,理论上应该可行,但是这样太麻烦了我迟迟没动手。
过了一天以后,我灵光一闪!我直接把widget的背景上面放一个半透明的图片不就可以了吗!!我真是个小机灵鬼! 于是我打开ps弄了一张透明度为50%的白色图片保存成png模式,然后qss里面设置一下:
#Tool_Widget{ border-radius: 10px; border-image: url(img/toolbg.png) }
搞定!!!!快夸我!!!
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。
相关文章
Pandas中map(),applymap(),apply()函数的使用方法
本文主要介绍了Pandas中map(),applymap(),apply()函数的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2023-02-02解决Matplotlib图表不能在Pycharm中显示的问题
今天小编就为大家分享一篇解决Matplotlib图表不能在Pycharm中显示的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2018-05-05
最新评论