📜  PyQt5 - 如何创建半透明窗口?(1)

📅  最后修改于: 2023-12-03 15:18:46.786000             🧑  作者: Mango

PyQt5 - 如何创建半透明窗口?

在 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 相关的问题,请查看我的其他教程。