使用python在指定窗口上绘制一个透明的图层
时间: 2023-05-12 21:02:48 浏览: 359
可以使用PyQt5库中的QPainter和QPixmap类来实现在指定窗口上绘制透明图层的功能。具体实现代码如下:
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QPainter, QColor, QPixmap
class TransparentLayer(QWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.setWindowFlags(self.windowFlags() | 0x40000)
self.setAttribute(0x01000000)
self.setAttribute(0x00080000)
self.setAttribute(0x00000080)
self.setAttribute(0x00000040)
self.setGeometry(0, 0, 800, 600)
self.show()
def paintEvent(self, event):
painter = QPainter(self)
painter.setCompositionMode(QPainter.CompositionMode_Clear)
painter.fillRect(self.rect(), QColor(0, 0, 0, 0))
painter.setCompositionMode(QPainter.CompositionMode_SourceOver)
painter.setPen(QColor(255, 0, 0))
painter.setBrush(QColor(255, 0, 0, 100))
painter.drawRect(100, 100, 200, 200)
if __name__ == '__main__':
app = QApplication(sys.argv)
layer = TransparentLayer()
sys.exit(app.exec_())
```
这段代码会在屏幕上创建一个大小为800x600的透明窗口,并在窗口上绘制一个红色的矩形,矩形的透明度为100。
阅读全文