本文主要是介绍【pyqt5】拖拽绘制矩形框,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
博主想自己做一个图片标注工具,用于制作目标检测数据集,其中一个功能就是拖拽鼠标选中矩形区域,参考了几篇博客,自己实现了一下,效果如下:
下面是实现:
import sys,math
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *class Drawing(QWidget):def __init__(self,parent=None):super(Drawing,self).__init__(parent)self.resize(600,400)self.setWindowTitle('拖拽绘制矩形')self.rect = None#重写绘制函数def paintEvent(self,event):#初始化绘图工具qp=QPainter()#开始在窗口绘制qp.begin(self)#自定义画点方法if self.rect:self.drawRect(qp)#结束在窗口的绘制qp.end()def drawRect(self,qp):#创建红色,宽度为4像素的画笔pen = QPen(Qt.red, 4)qp.setPen(pen)qp.drawRect(*self.rect)#重写三个时间处理def mousePressEvent (self, event):print("mouse press")self.rect = (event.x(), event.y(), 0, 0)def mouseReleaseEvent (self, event) :print("mouse release")def mouseMoveEvent(self, event):start_x, start_y = self.rect[0:2]self.rect = (start_x, start_y, event.x() - start_x, event.y() - start_y)self.update()if __name__ == '__main__':app=QApplication(sys.argv)demo=Drawing()demo.show()sys.exit(app.exec_())
参考
- [1] https://blog.csdn.net/leemboy/article/details/80462632
- [2] https://blog.csdn.net/u011218356/article/details/80950766
这篇关于【pyqt5】拖拽绘制矩形框的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!