pyqt5 图像上划线_PyQt5 绘制画 线(鼠标笔)
文章目录
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 绘制画 线(鼠标笔)相关推荐
- pyqt5 图像上划线_PyQt5如何用QPainter在QScrollArea上画线?
你应该为重画的控件写一个新类,继承自 QWidget,并重写 paintEvent 方法. 参考 # -*- coding: utf-8 -*- import sys from PyQt5.QtWid ...
- PyQt5 绘制画 线(鼠标笔)
文章目录 1.简介 2.功能实现 1.简介 通过多鼠标事件的监听.绘制事件的监听,实现一个鼠标笔 2.功能实现 # -*- coding: utf-8 -*-"""[简介 ...
- matlab中在图像上划线 画圈的方法
其实用plot都可以搞定. plot(imp(:,1),imp(:,2),'ro'); %最后的'ro',r是代表红色,o是代表画圈.画圈的话可以提供多个点的坐标,我这里用的就是向量的形式. plot ...
- php 线条的绘制,在非常高的图像上使用PHP绘制线条,脚本停止绘制.怎么了,怎么解决?...
我有一个 PHP脚本,可以创建一个非常高的图像,并在其上绘制很多行(组织Web外观).对于我尝试创建的最高图像,线条图突然停止向图像的中间到底部: http://i.imgur.com/4Plgr.p ...
- opencv之 图像像素操作(如何通过opencv在图像上划线)
首先我们了解,一个图像,都是一个大的二维数组,每一个元素都是一个像素,若是rgb图像,则该像素还会有rgb三个值,我们读入一个图像 import cv2img = cv2.imread("o ...
- matlab 刷新图像,MATLAB三维画图、画线、动态刷新、不同视角、自动保存多张图像...
作者:金良(golden1314521@gmail.com) csdn博客:http://blog.csdn.net/u012176591 效果图(http://www.tuyitu.com/gif/ ...
- c++ --- 画线小工具
c++ --- 封装按钮类_考拉爱睡觉鸭~的博客-CSDN博客 画线 - - - 鼠标左键按下 + 移动 - - - 两个消息的处理 testDrawTool.cpp 主函数部分 #i ...
- matlab将某点标红,Draw-a-rectangle-matlab 本程序在图像上指定位置话红色的矩形框作为标记 - 下载 - 搜珍网...
在图像上画矩形框matlab程序/ 在图像上画矩形框matlab程序/_input/ 在图像上画矩形框matlab程序/_input/01.jpg 在图像上画矩形框matlab程序/_input/02 ...
- python鼠标画点连线_使用Matplotlib在Python中使用鼠标在图像上绘制点
我试图用鼠标在图像上绘制点. 问题是:图像出现了,但是当我点击鼠标时,什么也没有绘制出来(即使我点击了几次).在 我的Python版本是python2.7,带有Anaconda和IPython控制台. ...
最新文章
- 激活当前视图菜单高亮呈现 V2.0
- python解除windows锁屏_实战 | Python批量提取Win10锁屏壁纸
- PHP工厂模式的研究
- 深潜百米,采用半缆通信技术的Gladius水下无人机能够征服海洋吗?
- 科大星云诗社动态20210416
- python3网络爬虫代码_《Python3网络爬虫开发实战代码》
- 程序员常用的泛型机制究竟怎么玩?
- Navicat连接出现了2003-Can’t connect to MySQL server on ‘localhost’…(已解决)
- hdfs 多租户_Hadoop多租户架构配置
- python队列中替换某元素_如何打印队列中的元素(Python)
- Android心电图动画效果,手把手教你打造一个心电图效果View Android自定义View
- String 常用方法总结
- DNS的更新和ddns(动态域名解析)
- GDScript:关于派生类调用基类方法的一个注意事项
- 独家 | 全球2000家客户,这家公司推动林肯MKZ成为最流行的自动驾驶样车
- [EI检索]2022智能制造、先进传感与大数据国际会议诚邀您关注
- 关于我的专业(niit软件工程方向)
- 32位掩码转换成子网掩码
- finereport 激活码
- 旅行商问题(TSP)简介
热门文章
- 工业生产ERP系统常见的五大统计分析功能
- 当彗星划过天空,那好像梦幻一般的景色,真是无与伦比,美到极致,只能让人一味眺望着那无法言喻的美。
- 结对开发——求二维环形数组所有子矩阵最大和的问题
- 微信二维码 活码转跳
- Service unavailable是什么意思?是网站有问题吗?怎么解决?
- WLW离线编辑器的安装与使用
- x_train, x_test, y_train, y_test到底是什么?
- 企业微信公费电话怎么使用?
- 2022-2028全球与中国电动帆船市场现状及未来发展趋势
- 服务器 国产CPU 什么型号,国产cpu服务器