我目前正在开发一款“截图工具”应用。截取过程中,整个屏幕应该变成半透明的白色,同时截取的区域应该是透明的。到目前为止,我已经设法使整个屏幕变成半透明的白色,但我不确定如何使剪切区域透明。我怎样才能做到这一点?
这是我到目前为止的代码,它产生一个半透明的窗口
from PyQt5 import QtWidgets, QtGui, QtCore
from PyQt5.QtWidgets import QApplication, QMainWindow, QDesktopWidget, QSizeGrip
import cv2
import sys
import time
import numpy as np
class Window(QMainWindow):
def __init__(self):
super().__init__()
self.title = "Frameless"
self.xpos = 0
self.ypos = 0
self.width = QDesktopWidget().availableGeometry().bottomRight().x()
self.height = QDesktopWidget().availableGeometry().bottomRight().y()
self.initUI()
def initUI(self):
self.setWindowTitle(self.title)
self.setGeometry(self.xpos, self.ypos, self.width, self.height)
self.setWindowOpacity(0.5)
flags = QtCore.Qt.WindowFlags(
QtCore.Qt.FramelessWindowHint | QtCore.Qt.WindowStaysOnTopHint)
self.setWindowFlags(flags)
self.show()
def window():
app = QApplication(sys.argv)
win = Window()
sys.exit(app.exec_())
window()