matplotlib性能不佳,尝试一下qt。

import numpy
import typing
from xmlrpc.server import DocXMLRPCServer
from PyQt5 import QtGui,QtCore
from PyQt5.QtCore import QPointF
from PyQt5.QtGui import QPainter,QPaintEvent,QColor, QFont
from PyQt5.QtWidgets import QApplication, QWidgetclass MyTestForm(QWidget):def __init__(self, parent: typing.Optional['QWidget'] = ..., flags: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None:super().__init__(parent=None)self.painter_ = QPainter()self.resize(500,400)self.cx = 100self.cy =100self.r1 = 40self.r2 = 100self.origin_x_ = 0self.origin_y_ = 0self.n_ = 250self.painter_.setPen(QColor(0,0,0))self.painter_.setFont(QFont("Arial", 20))self.painter_.setRenderHint(QPainter.Antialiasing, True)def _info(self):return f"{self.cx}-{self.cy} {self.r1:.02f}-{self.r2:.02f} {self.origin_x_:.02f}-{self.origin_y_:.02f}"def paintEvent(self, a0: QtGui.QPaintEvent) -> None:self.painter_.begin(self)self.painter_.drawText(a0.rect(), 0, self._info())for r in numpy.linspace(self.r1,self.r2, self.n_):self.painter_.drawEllipse(QPointF(self.cx, self.cy), r, r)#self.painter_.drawEllipse(QPointF(self.cx, self.cy), self.r2, self.r2)self.painter_.end()def mousePressEvent(self, a0: QtGui.QMouseEvent) -> None:if a0.button() == 1:self.origin_x_ = a0.x()self.origin_y_ = a0.y()def mouseMoveEvent(self, a0: QtGui.QMouseEvent) -> None:dx = a0.x() - self.origin_x_dy = a0.y() - self.origin_y_self.cx += dxself.cy += dyself.origin_x_ = a0.x()self.origin_y_ = a0.y()self.update()def wheelEvent(self, a0: QtGui.QWheelEvent) -> None:if a0.angleDelta().y() > 0:self.r1 *= 1.1self.r2 *= 1.1else:self.r1 *= 0.9self.r2 *= 0.9self.update()import sys
app = QApplication(sys.argv)
f = MyTestForm()
f.show()
app.exec_()

虽然写起来麻烦一丢丢,但性能明显比matplotlib要强不少。

下面是250个圆圈,拖动缩放丝毫不卡顿。

PYQT5 Painter的简单入门相关推荐

  1. PyQT简单入门--hello world

    目录 练习第一个简单小程序 Hello world 试验 传送门 pyqt初始配置 pyqt简单使用教程 练习第一个简单小程序 import sys from PyQt5.QtWidgets impo ...

  2. BizTalk 2006 简单入门示例程序(附源项目文件下载)

    BizTalk 2006 简单入门示例程序(附源项目文件下载) 为初学BizTalk Server 2006的开发人员,提供一个简单入门的示例程序,包括一个Receive Port.Send Port ...

  3. python如何读取mat文件可视化_python Matplotlib数据可视化(1):简单入门

    1 matplot入门指南 matplotlib是Python科学计算中使用最多的一个可视化库,功能丰富,提供了非常多的可视化方案,基本能够满足各种场景下的数据可视化需求.但功能丰富从另一方面来说也意 ...

  4. ARM NEON 编程简单入门1

    原文:http://blog.csdn.net/silentob/article/details/72954618  ARM NEON 编程简单入门1 NEON简介 NEON是适用于ARM Corte ...

  5. Python 简单入门指北(二)

    Python 简单入门指北(二) 2 函数 2.1 函数是一等公民 一等公民指的是 Python 的函数能够动态创建,能赋值给别的变量,能作为参传给函数,也能作为函数的返回值.总而言之,函数和普通变量 ...

  6. EChart.js 简单入门

    EChart.js 简单入门 最近有一个统计的项目要做,在前端的数据需要用图表的形式展示.网上搜索了一下,发现有几种统计图库. MSChart   这个是Visual Studio里的自带控件,使用比 ...

  7. 【我的区块链之路】- Hyperledger fabric的简单入门(四)链码的编写及调试

    [我的区块链之路]- Hyperledger fabric的简单入门(四)链码的编写及调试       之前的文章中我们有讲过了fabric的一些核心的配置文件的选项说明,讲过fabric 的网络启动 ...

  8. 基于vue-cli、elementUI的Vue超简单入门小例子

    基于vue-cli.elementUI的Vue超简单入门小例子 这个例子还是比较简单的,独立完成后,能大概知道vue是干嘛的,可以写个todoList的小例子. 开始写例子之前,先对环境的部署做点简单 ...

  9. 【java开发系列】—— spring简单入门示例

    回顾 1 JDK安装 2 Struts2简单入门示例 前言 作为入门级的记录帖,没有过多的技术含量,简单的搭建配置框架而已.这次讲到spring,这个应该是SSH中的重量级框架,它主要包含两个内容:控 ...

最新文章

  1. C++ 笔记(13)— 函数(函数声明、函数定义、函数调用[传值、指针、引用]、函数参数默认值、函数重载)
  2. 对抗canary保护技术的几种方式
  3. boost::geometry::tag用法的测试程序
  4. VMware vsphere client报错问题
  5. 如何删除一个VDP服务器
  6. 图 | 为什么存在关于图的研究
  7. Matlab常用的标记符号和颜色
  8. python loadlibrary_使用py2exe教程LoadLibrary(pythondll)失败错误
  9. QT界面程序异常结束问题分析 ,弹出 SogouInput\Components\
  10. OpenDRIVE工具介绍及地址
  11. CUDA库之NPP(二):NPP实现YUV转BGR
  12. 计算机维修与数据恢复论文,备份恢复论文,关于计算机数据备份数据恢复技术相关参考文献资料-免费论文范文...
  13. C:\ProgramData\Microsoft\VisualStudio创建软连接,腾出C盘空间
  14. mogo语句常用用法
  15. 你可能会读错的字大集合
  16. Python的len函数探究
  17. react 使用 svg_在React本机中使用svg构建钟面
  18. 数控机床是什么编程php吗,数控车床编程实例
  19. 设计函数实现将一个字符串中小写字母转化为大写字母
  20. 一个简易的基于内容的新闻推荐系统

热门文章

  1. 如何设置Word文档公式序号在右边
  2. 如何成为技术领袖(转载)
  3. uniapp使用环信插件实现视频通话
  4. c语言来自不兼容指针类型的分配,c - 为什么我会收到“警告:来自不兼容指针类型的分配”? 结构数组中的双链表 - 堆栈内存溢出...
  5. cvc-complex-type.2.4.d: 发现了以元素 ‘base-extension‘ 开头的无效内容。此处不应含有子元素。
  6. 2020年全球EDA软件行业市场竞争格局分析 三巨头三足鼎立
  7. 从科学的开放精神来看开源
  8. 高等代数 矩阵的运算(第4章)1 加法,数量乘法,矩阵乘法,一些特殊矩阵
  9. GTS-阿里巴巴全新分布式事务解决方案
  10. 手机怎么升级为鸿蒙系统,这9款华为手机可升级为鸿蒙系统,有你的手机吗?...