当前位置 : 主页 > 编程语言 > python >

pyqt5如何设置控件透明

来源:互联网 收集:自由互联 发布时间:2021-08-10
pyqt5设置控件透明方法:首先使用QGraphicsOpacityEffect类设置图形元素的透明效果;然后使用“元素名称.setOpacity(透明值)”设置元素的透明度,参数值在0和“1.0”之间即可。 本教程操作环

pyqt5设置控件透明方法:首先使用QGraphicsOpacityEffect类设置图形元素的透明效果;然后使用“元素名称.setOpacity(透明值)”设置元素的透明度,参数值在0和“1.0”之间即可。

本教程操作环境:windows7系统、CSS3&&HTML5版、Dell G3电脑。

PyQT设置控件透明度

PyQT5给控件设置Opacity,方法:QGraphicsOpacityEffect

下面这段示例代码中,myshow是一个QPushButton,给其设置透明度的方法如下:

op = QtWidgets.QGraphicsOpacityEffect()
op.setOpacity(0.5)
myshow.setGraphicsEffect(op)
myshow.setAutoFillBackground(True)

完整示例,可以直接粘贴使用:

from PyQt5 import QtWidgets, QtCore
import sys
from PyQt5.QtCore import *
import time


if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    myshow = QtWidgets.QPushButton('Button')

    myshow.setStyleSheet("""
        padding-left: 10px;
        padding-right: 10px;
        padding-top: 1px;
        padding-bottom: 1px;
        border:1px solid #0073df;
        border-radius:5px;
        background: #167ce9;
        color: #fff;
    """)

    def changeOpacity(_):
        op = QtWidgets.QGraphicsOpacityEffect()
        op.setOpacity(0.5)
        myshow.setGraphicsEffect(op)
        myshow.setAutoFillBackground(True)

    myshow.clicked.connect(changeOpacity)

    layout = QtWidgets.QVBoxLayout()
    layout.addWidget(myshow)
    
    main = QtWidgets.QWidget()
    main.setLayout(layout)
    main.show()
    sys.exit(app.exec_())

网友评论