PyQt5窗口和QPainter不透明度

2024-10-02 08:28:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试制作一个半透明的窗口,其中包含一个不透明的矩形(使用QPainter),不幸的是,矩形似乎具有窗口的半透明性。有没有办法绕过这个问题

提前谢谢!以下是我目前的代码:

from PyQt5 import QtWidgets, QtGui, QtCore
from PyQt5.QtGui import QCursor
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QLabel, QVBoxLayout, QWidget, QDesktopWidget
import sys


class CustomWindow(QMainWindow):
    def paintEvent(self, event=None):
        painter = QtGui.QPainter(self)
        painter.setPen(QtGui.QPen(QtGui.QColor('red'),
                                  2))
        painter.setOpacity(255)
        painter.drawRect(100, 100, 200, 200)


app = QApplication(sys.argv)
window = CustomWindow()
window.setGeometry(0, 0, 500, 500)
window.setWindowOpacity(0.2)
window.setWindowTitle("Window")
window.show()
app.exec_()

我也尝试过使用window.setAttribute(QtCore.Qt.WA_TranslucentBackground, True)作为类似问题的建议,不幸的是,这只会导致一个不透明的黑色窗口


Tags: fromimportsyswindowpyqt5矩形painter半透明

热门问题