Quantcast
Channel: Active questions tagged qpainter - Stack Overflow
Viewing all articles
Browse latest Browse all 58

How to draw a rectangle and adjust its shape by drag and drop in PyQt5

$
0
0

I'm trying to draw a rectangle on GUI created by PyQt5 by drag and drop. I managed to do that, but the rectangle is drawn when the mouse left key is released.

What I want to do is like this link:

  • When the mouse left button is pressed, start drawing the rectangle.
  • While dragging, adjust the rectangle shape with the mouse movement.
  • When the mouse left button is released, determine the rectangle shape.

How can I implement this? Thanks in advance.

Here's my code.

# -*- coding: utf-8 -*-import sysfrom PyQt5 import QtWidgets, QtCorefrom PyQt5.QtGui import QPainterclass MyWidget(QtWidgets.QWidget):    def __init__(self):        super().__init__()        self.setGeometry(30,30,600,400)        self.pos1 = [0,0]        self.pos2 = [0,0]        self.show()    def paintEvent(self, event):        width = self.pos2[0]-self.pos1[0]        height = self.pos2[1] - self.pos1[1]             qp = QPainter()        qp.begin(self)                   qp.drawRect(self.pos1[0], self.pos1[1], width, height)                qp.end()    def mousePressEvent(self, event):        self.pos1[0], self.pos1[1] = event.pos().x(), event.pos().y()        print("clicked")    def mouseReleaseEvent(self, event):        self.pos2[0], self.pos2[1] = event.pos().x(), event.pos().y()        print("released")        self.update()if __name__ == '__main__':    app = QtWidgets.QApplication(sys.argv)    window = MyWidget()    window.show()    app.aboutToQuit.connect(app.deleteLater)    sys.exit(app.exec_())

Viewing all articles
Browse latest Browse all 58

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>