📅  最后修改于: 2023-12-03 15:18:46.786000             🧑  作者: Mango
在 PyQt5 中创建半透明窗口非常简单。我们只需要使用 setWindowOpacity()
方法即可。该方法可接受 0 到 1 之间的一个浮点数作为参数,表示窗口不透明度的比例。比如,0 表示完全透明,1 表示完全不透明。
以下是一个简单的代码示例:
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QPainter, QColor
import sys
class MyWidget(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 250, 250)
self.setWindowTitle('半透明窗口示例')
self.setAutoFillBackground(True) # 自动填充背景色
p = self.palette()
p.setColor(self.backgroundRole(), QColor(0, 0, 0, 128)) # 设置窗口背景色为半透明
self.setPalette(p)
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = MyWidget()
sys.exit(app.exec_())
在这个示例中,我们创建了一个自定义的 QWidget 子类 MyWidget。在 MyWidget 的构造函数中,我们调用了 initUI()
方法来初始化窗口。
在 initUI()
方法中,我们设置了窗口的标题和尺寸,然后调用了 setAutoFillBackground(True)
方法来启用自动填充背景色。接着,我们创建了一个 QPalette 对象,并使用 QColor()
构造函数创建了一个半透明的黑色颜色。最后,我们调用 setPalette()
方法将该 QPalette 对象应用到窗口上。
注意,在创建半透明窗口时,我们需要启用自动填充背景色,并使用 QPalette 对象来设置窗口的背景色。如果直接使用 setStyleSheet()
方法设置窗口的背景色,则无法实现半透明效果。
以上就是在 PyQt5 中创建半透明窗口的方法。如果您有其他 PyQt5 相关的问题,请查看我的其他教程。