149 字
1 分钟
PyQt5 设置控件不透明度

前言#

介绍一种 PyQt 框架下,让控件变透明的方法: QGraphicsOpacityEffect

示例代码#

import sys
from PyQt5.QtWidgets import QMainWindow, QApplication, QWidget, QGraphicsOpacityEffect, QPushButton, QGridLayout
class MAIN(QMainWindow):
def __init__(self):
super(MAIN, self).__init__()
widget = QWidget()
layout = QGridLayout()
widget.setLayout(layout)
self.QPushButton_Test1 = QPushButton("test1")
layout.addWidget(self.QPushButton_Test1, 0, 0, 1, 1)
self.QPushButton_Test2 = QPushButton("test2")
layout.addWidget(self.QPushButton_Test2, 1, 0, 1, 1)
self.QPushButton_Test3 = QPushButton("test3")
layout.addWidget(self.QPushButton_Test3, 2, 0, 1, 1)
# TODO: 设置控件不透明度
opacity1 = QGraphicsOpacityEffect()
opacity1.setOpacity(0.5) # 透明度 0~1
self.QPushButton_Test2.setGraphicsEffect(opacity1)
self.QPushButton_Test2.setAutoFillBackground(True)
opacity2 = QGraphicsOpacityEffect()
opacity2.setOpacity(0) # 透明度 0~1
self.QPushButton_Test3.setGraphicsEffect(opacity2)
self.QPushButton_Test3.setAutoFillBackground(True)
self.setCentralWidget(widget)
def main():
app = QApplication(sys.argv)
Main = MAIN()
Main.show()
sys.exit(app.exec_())
return
if __name__ == "__main__":
main()

结果#

下图是运行后的结果,将不透明度设为 0 之后,控件直接消失了:

PyQt5 设置控件不透明度
https://fuwari.vercel.app/posts/编程/qt/pyqt5-设置控件不透明度/
作者
Asuwee
发布于
2022-01-24
许可协议
CC BY-NC-SA 4.0