import sys 
from PyQt5 import QtWidgets, QtGui
from PyQt5.QtCore import Qt, QPoint, QObject, QRect



class InvisibleWidget(QtWidgets.QWidget):

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        
        # self.setStyleSheet("background:transparent")
        # self.setWindowFlags(Qt.FramelessWindowHint | Qt.Widget)
        # self.setWindowFlags(Qt.FramelessWindowHint)
        # self.setAttribute(Qt.WA_NoSystemBackground, True)
        self.setAttribute(Qt.WA_TranslucentBackground, True)
        self.setAttribute(Qt.WA_PaintOnScreen, True)
        # self.show()
        self.setCursor(Qt.CrossCursor)
        
        # QObject.connect(self._start_drawing )


    def mousePressEvent(self, event):
        if event.buttons() & Qt.LeftButton:
            pos = event.pos()
            self.start_x = pos.x()
            self.start_y = pos.y()
            # self.clicked.emit()
            # print(f'Mouse event {self.startpos}')
            self.rect = QRect(pos.x(), pos.y(), 0, 0)
    
    def mouseMoveEvent(self, event):
        x = self.start_x
        y = self.start_y
        pos = event.pos()
        # difference = pos - x

        self.rect = QRect(x, y, pos.x(), pos.y())
        # self.flag = True
        # self.update()
        self.repaint()



    def painEvent(self, event=None):
        p = self.rect
        pixmap = QtGui.QPixmap()
        pixmap.fill(QtGui.QColor("orange"))

        painter = QtGui.QPainter(self)
        painter.begin(self)
        self.paint_rect(painter)
        painter.end()
        pass
    def paint_rect(self, qp):
        qp.setBrush(QtGui.QBrush(Qt.black))
        qp.setPen(QtGui.QPen(Qt.red))
        qp.drawRect(self.rect)
        
        

app = QtWidgets.QApplication(sys.argv)

mainWindowWidget = InvisibleWidget()




mainWindowWidget.show()
print(f'Here {Qt.FramelessWindowHint}')

sys.exit(app.exec())
