wxpython动态实时绘图_wxPython: 简单的绘图例子
#!/usr/bin/env python#-*- coding: utf-8 -*-
'''Function:绘图
Input:NONE
Output: NONE
author: socrates
blog:http://www.cnblogs.com/dyx1024/
date:2012-07-11'''
importwxclassPaintWindow(wx.Window):def __init__(self, parent, id):
wx.Window.__init__(self, parent, id)
self.SetBackgroundColour("Red")
self.color= "Green"self.thickness= 10
#创建一个画笔
self.pen =wx.Pen(self.color, self.thickness, wx.SOLID)
self.lines=[]
self.curLine=[]
self.pos=(0, 0)
self.InitBuffer()#连接事件
self.Bind(wx.EVT_LEFT_DOWN, self.OnLeftDown)
self.Bind(wx.EVT_LEFT_UP, self.OnLeftUp)
self.Bind(wx.EVT_MOTION, self.OnMotion)
self.Bind(wx.EVT_SIZE, self.OnSize)
self.Bind(wx.EVT_IDLE, self.OnIdle)
self.Bind(wx.EVT_PAINT, self.OnPaint)defInitBuffer(self):
size=self.GetClientSize()#创建缓存的设备上下文
self.buffer =wx.EmptyBitmap(size.width, size.height)
dc=wx.BufferedDC(None, self.buffer)#使用设备上下文
dc.SetBackground(wx.Brush(self.GetBackgroundColour()))
dc.Clear()
self.DrawLines(dc)
self.reInitBuffer=FalsedefGetLinesData(self):returnself.lines[:]defSetLinesData(self, lines):
self.lines=lines[:]
self.InitBuffer()
self.Refresh()defOnLeftDown(self, event):
self.curLine=[]#获取鼠标位置
self.pos =event.GetPositionTuple()
self.CaptureMouse()defOnLeftUp(self, event):ifself.HasCapture():
self.lines.append((self.color,
self.thickness,
self.curLine))
self.curLine=[]
self.ReleaseMouse()defOnMotion(self, event):if event.Dragging() andevent.LeftIsDown():
dc=wx.BufferedDC(wx.ClientDC(self), self.buffer)
self.drawMotion(dc, event)
event.Skip()defdrawMotion(self, dc, event):
dc.SetPen(self.pen)
newPos=event.GetPositionTuple()
coords= self.pos +newPos
self.curLine.append(coords)
dc.DrawLine(*coords)
self.pos=newPosdefOnSize(self, event):
self.reInitBuffer=TruedefOnIdle(self, event):ifself.reInitBuffer:
self.InitBuffer()
self.Refresh(False)defOnPaint(self, event):
dc=wx.BufferedPaintDC(self, self.buffer)defDrawLines(self, dc):for colour, thickness, line inself.lines:
pen=wx.Pen(colour, thickness, wx.SOLID)
dc.SetPen(pen)for coords inline:
dc.DrawLine(*coords)defSetColor(self, color):
self.color=color
self.pen=wx.Pen(self.color, self.thickness, wx.SOLID)defSetThickness(self, num):
self.thickness=num
self.pen=wx.Pen(self.color, self.thickness, wx.SOLID)classPaintFrame(wx.Frame):def __init__(self, parent):
wx.Frame.__init__(self, parent, -1, "Panit Frame", size = (800, 600))
self.paint= PaintWindow(self, -1)if __name__ == '__main__':
app=wx.PySimpleApp()
frame=PaintFrame(None)
frame.Show(True)
app.MainLoop()
wxpython动态实时绘图_wxPython: 简单的绘图例子相关推荐
- python简单绘图教程视频_Python绘图的简单教程(I)-基本元素,python,一
python绘图简单教程(一)--基本元素 一.理解面向对象 因为我们不需要自己设计一个代码库,只要知道面向对象的调用就可以了. 1)什么是类? 一类东西的抽象名词概括 比如汽车car,概括了许多具体 ...
- 用python画太阳花-python 简单的绘图工具turtle使用详解
目录 1. 画布(canvas) 1.1 设置画布大小 2. 画笔 2.1 画笔的状态 2.2 画笔的属性 2.3 绘图命令 3. 命令详解 4. 绘图举例 4.1 太阳花 4.2 绘制小蟒蛇 4.3 ...
- Qt 2D绘图功能简单总结
文章目录 Qt 2D绘图功能简单总结 Qt 2D绘图功能简单总结 Qt 的绘图功能非常强大,它可以绘制一切想要的图形,从最简单的一条直线到其他任何复杂的图形,还可以用来绘制文本和图片. Qt的绘图系统 ...
- 海龟画图 python太阳花_python 简单的绘图工具turtle使用详解
目录 1. 画布(canvas) 1.1 设置画布大小 2. 画笔 2.1 画笔的状态 2.2 画笔的属性 2.3 绘图命令 3. 命令详解 4. 绘图举例 4.1 太阳花 4.2 绘制小蟒蛇 4.3 ...
- 基于C++实现一个支持简单交互绘图小程序
资源下载地址:https://download.csdn.net/download/sheziqiong/86763967 资源下载地址:https://download.csdn.net/downl ...
- MFC+OpenGL三维绘图(一)——简单绘图平台的搭建与实现图像的旋转、缩放
声明:本文章为小白本人第一次创作,文章可能会有诸多不足,希望大家批评指正! VS2013下载:https://pan.baidu.com/s/1Y7TuZlLaGsbj2KCZV_uckw OpenG ...
- 万剑归宗:Matplotlib,绘图如此简单
模块介绍 Matplotlib是一个Python 绘图库/工具包,可以生成各种2D.3D图形,让绘图成为简单容易的事情,使用matplotlib只需几行简单的代码就可以生成线形图.直方图.功率谱.条形 ...
- iOS绘图详解-多种绘图方式、裁剪、滤镜、移动、CTM
iOS绘图详解 摘要: Core Graphics Framework是一套基于C的API框架,使用了Quartz作为绘图引擎.它提供了低级别.轻量级.高保真度的2D渲染.该框架可以用于基于路径的 绘 ...
- iOS开发之高效绘图,通过一个绘图应用进行讲解
软件绘图 术语绘图通常在Core Animation的上下文中指代软件绘图(意即:不由GPU协助的绘图).在iOS中,软件绘图通常是由Core Graphics框架完成来完成.但是,在一些必要的情况下 ...
最新文章
- 科学家发现跨越生命的重要门槛或许没那么难
- 在Win7的IIS上搭建FTP服务及用户授权
- sqlServer MD5
- Ubuntu安装OMNet++及各种问题
- 以下不属于计算机安全术语,基础知识(D).doc
- 管理低代码公民开发人员的8个技巧
- 关于单元测试的思考--Asp.Net Core单元测试最佳实践
- 大数据之-Hadoop3.x_Hadoop_HDFS_掉线时限参数设置---大数据之hadoop3.x工作笔记0079
- 玩个锤子,李飞飞夫妇团队的最新研究
- 数据结构—线索二叉树
- python好友管理系统
- java 解析证书_Java x509证书解析类
- Python自动化体系学习思维导图、知识点整理
- 史上最全的常用开发工具类收集(持续更新中)
- 在Windows平台上如何安装Python
- 媒体报道 | 创业邦:巴别鸟,一款便捷好用的企业级文件协同网盘
- python 2.7.x to exe
- LeetCode:974. Subarray Sums Divisible by K - Python
- 点击按钮触发声音(xaml实现)
- java调用bert_NLP(十九)首次使用BERT的可视化指导
热门文章
- html算术计算,js实现计算器 提供算术表达式求值
- python打开浏览器怎么写_使用python调用浏览器并打开一个网址的例子
- 多继承中构造器和析构器的调用顺序
- bzoj3122 [SDOI2013]随机数生成器
- 数据仓库分层ODS DW DM 主题 标签
- 2018,抢票大作战
- 手机芯片三国杀:高通、联发科、展讯都想成霸主
- linux UID,GID,EUID,EGID,SUID,SGID
- d3.js学习笔记--Mike Bostock: Thinking with Joins
- bash脚本编程之一 条件判断及算术运算