文章目录

1、简介

2、功能实现

1、简介

通过多鼠标事件的监听、绘制事件的监听,实现一个鼠标笔

2、功能实现

# -*- coding: utf-8 -*-

"""

【简介】

使用paintEvent在窗口实现划线例子

"""

import sys

from PyQt5.QtWidgets import QApplication ,QWidget

from PyQt5.QtGui import QPainter ,QPixmap

from PyQt5.QtCore import Qt , QPoint

class Winform(QWidget):

def __init__(self,parent=None):

super(Winform,self).__init__(parent)

self.setWindowTitle("绘图例子")

self.pix = QPixmap() # 实例化一个 QPixmap 对象

self.lastPoint = QPoint() # 起始点

self.endPoint = QPoint() #终点

self.initUi()

def initUi(self):

#窗口大小设置为600*500

self.resize(600, 500)

# 画布大小为400*400,背景为白色

self.pix = QPixmap(400, 400)

self.pix.fill(Qt.white)

# 重绘的复写函数 主要在这里绘制

def paintEvent(self, event):

pp = QPainter(self.pix)

pen = QPen() # 定义笔格式对象

pen.setWidth(10) # 设置笔的宽度

pp.setPen(pen) #将笔格式赋值给 画笔

# 根据鼠标指针前后两个位置绘制直线

pp.drawLine(self.lastPoint, self.endPoint)

# 让前一个坐标值等于后一个坐标值,

# 这样就能实现画出连续的线

self.lastPoint = self.endPoint

painter = QPainter(self)

painter.drawPixmap(0, 0, self.pix) # 在画布上画出

#鼠标按压事件

def mousePressEvent(self, event) :

# 鼠标左键按下

if event.button() == Qt.LeftButton :

self.lastPoint = event.pos()

self.endPoint = self.lastPoint

# 鼠标移动事件

def mouseMoveEvent(self, event):

# 鼠标左键按下的同时移动鼠标

if event.buttons() and Qt.LeftButton :

self.endPoint = event.pos()

#进行重新绘制

self.update()

# 鼠标释放事件

def mouseReleaseEvent( self, event):

# 鼠标左键释放

if event.button() == Qt.LeftButton :

self.endPoint = event.pos()

#进行重新绘制

self.update()

if __name__ == "__main__":

app = QApplication(sys.argv)

form = Winform()

form.show()

sys.exit(app.exec_())

文件参考:

PyQt 快速开发与实践

本人郑重声明,本博客所著文章、图片版权归权利人持有,本博只做学习交流分享所用,不做任何商业用途。访问者可將本博提供的內容或服务用于个人学习、研究或欣赏,不得用于商业使用。同時,访问者应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人的合法权利;如果用于商业用途,须征得相关权利人的书面授权。若以上文章、图片的原作者不愿意在此展示內容,请及时通知在下,將及时予以刪除

pyqt5 图像上划线_PyQt5 绘制画 线(鼠标笔)相关推荐

  1. pyqt5 图像上划线_PyQt5如何用QPainter在QScrollArea上画线?

    你应该为重画的控件写一个新类,继承自 QWidget,并重写 paintEvent 方法. 参考 # -*- coding: utf-8 -*- import sys from PyQt5.QtWid ...

  2. PyQt5 绘制画 线(鼠标笔)

    文章目录 1.简介 2.功能实现 1.简介 通过多鼠标事件的监听.绘制事件的监听,实现一个鼠标笔 2.功能实现 # -*- coding: utf-8 -*-"""[简介 ...

  3. matlab中在图像上划线 画圈的方法

    其实用plot都可以搞定. plot(imp(:,1),imp(:,2),'ro'); %最后的'ro',r是代表红色,o是代表画圈.画圈的话可以提供多个点的坐标,我这里用的就是向量的形式. plot ...

  4. php 线条的绘制,在非常高的图像上使用PHP绘制线条,脚本停止绘制.怎么了,怎么解决?...

    我有一个 PHP脚本,可以创建一个非常高的图像,并在其上绘制很多行(组织Web外观).对于我尝试创建的最高图像,线条图突然停止向图像的中间到底部: http://i.imgur.com/4Plgr.p ...

  5. opencv之 图像像素操作(如何通过opencv在图像上划线)

    首先我们了解,一个图像,都是一个大的二维数组,每一个元素都是一个像素,若是rgb图像,则该像素还会有rgb三个值,我们读入一个图像 import cv2img = cv2.imread("o ...

  6. matlab 刷新图像,MATLAB三维画图、画线、动态刷新、不同视角、自动保存多张图像...

    作者:金良(golden1314521@gmail.com) csdn博客:http://blog.csdn.net/u012176591 效果图(http://www.tuyitu.com/gif/ ...

  7. c++ --- 画线小工具

    c++ --- 封装按钮类_考拉爱睡觉鸭~的博客-CSDN博客 画线 - - - 鼠标左键按下 + 移动 - - - 两个消息的处理 testDrawTool.cpp         主函数部分 #i ...

  8. matlab将某点标红,Draw-a-rectangle-matlab 本程序在图像上指定位置话红色的矩形框作为标记 - 下载 - 搜珍网...

    在图像上画矩形框matlab程序/ 在图像上画矩形框matlab程序/_input/ 在图像上画矩形框matlab程序/_input/01.jpg 在图像上画矩形框matlab程序/_input/02 ...

  9. python鼠标画点连线_使用Matplotlib在Python中使用鼠标在图像上绘制点

    我试图用鼠标在图像上绘制点. 问题是:图像出现了,但是当我点击鼠标时,什么也没有绘制出来(即使我点击了几次).在 我的Python版本是python2.7,带有Anaconda和IPython控制台. ...

最新文章

  1. 激活当前视图菜单高亮呈现 V2.0
  2. python解除windows锁屏_实战 | Python批量提取Win10锁屏壁纸
  3. PHP工厂模式的研究
  4. 深潜百米,采用半缆通信技术的Gladius水下无人机能够征服海洋吗?
  5. 科大星云诗社动态20210416
  6. python3网络爬虫代码_《Python3网络爬虫开发实战代码》
  7. 程序员常用的泛型机制究竟怎么玩?
  8. Navicat连接出现了2003-Can’t connect to MySQL server on ‘localhost’…(已解决)
  9. hdfs 多租户_Hadoop多租户架构配置
  10. python队列中替换某元素_如何打印队列中的元素(Python)
  11. Android心电图动画效果,手把手教你打造一个心电图效果View Android自定义View
  12. String 常用方法总结
  13. DNS的更新和ddns(动态域名解析)
  14. GDScript:关于派生类调用基类方法的一个注意事项
  15. 独家 | 全球2000家客户,这家公司推动林肯MKZ成为最流行的自动驾驶样车
  16. [EI检索]2022智能制造、先进传感与大数据国际会议诚邀您关注
  17. 关于我的专业(niit软件工程方向)
  18. 32位掩码转换成子网掩码
  19. finereport 激活码
  20. 旅行商问题(TSP)简介

热门文章

  1. 工业生产ERP系统常见的五大统计分析功能
  2. 当彗星划过天空,那好像梦幻一般的景色,真是无与伦比,美到极致,只能让人一味眺望着那无法言喻的美。
  3. 结对开发——求二维环形数组所有子矩阵最大和的问题
  4. 微信二维码 活码转跳
  5. Service unavailable是什么意思?是网站有问题吗?怎么解决?
  6. WLW离线编辑器的安装与使用
  7. x_train, x_test, y_train, y_test到底是什么?
  8. 企业微信公费电话怎么使用?
  9. 2022-2028全球与中国电动帆船市场现状及未来发展趋势
  10. 服务器 国产CPU 什么型号,国产cpu服务器