149 字
1 分钟
PyQt5 设置控件不透明度
前言
介绍一种 PyQt 框架下,让控件变透明的方法: QGraphicsOpacityEffect
示例代码
import sysfrom 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-设置控件不透明度/