#!/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: 简单的绘图例子相关推荐

  1. python简单绘图教程视频_Python绘图的简单教程(I)-基本元素,python,一

    python绘图简单教程(一)--基本元素 一.理解面向对象 因为我们不需要自己设计一个代码库,只要知道面向对象的调用就可以了. 1)什么是类? 一类东西的抽象名词概括 比如汽车car,概括了许多具体 ...

  2. 用python画太阳花-python 简单的绘图工具turtle使用详解

    目录 1. 画布(canvas) 1.1 设置画布大小 2. 画笔 2.1 画笔的状态 2.2 画笔的属性 2.3 绘图命令 3. 命令详解 4. 绘图举例 4.1 太阳花 4.2 绘制小蟒蛇 4.3 ...

  3. Qt 2D绘图功能简单总结

    文章目录 Qt 2D绘图功能简单总结 Qt 2D绘图功能简单总结 Qt 的绘图功能非常强大,它可以绘制一切想要的图形,从最简单的一条直线到其他任何复杂的图形,还可以用来绘制文本和图片. Qt的绘图系统 ...

  4. 海龟画图 python太阳花_python 简单的绘图工具turtle使用详解

    目录 1. 画布(canvas) 1.1 设置画布大小 2. 画笔 2.1 画笔的状态 2.2 画笔的属性 2.3 绘图命令 3. 命令详解 4. 绘图举例 4.1 太阳花 4.2 绘制小蟒蛇 4.3 ...

  5. 基于C++实现一个支持简单交互绘图小程序

    资源下载地址:https://download.csdn.net/download/sheziqiong/86763967 资源下载地址:https://download.csdn.net/downl ...

  6. MFC+OpenGL三维绘图(一)——简单绘图平台的搭建与实现图像的旋转、缩放

    声明:本文章为小白本人第一次创作,文章可能会有诸多不足,希望大家批评指正! VS2013下载:https://pan.baidu.com/s/1Y7TuZlLaGsbj2KCZV_uckw OpenG ...

  7. 万剑归宗:Matplotlib,绘图如此简单

    模块介绍 Matplotlib是一个Python 绘图库/工具包,可以生成各种2D.3D图形,让绘图成为简单容易的事情,使用matplotlib只需几行简单的代码就可以生成线形图.直方图.功率谱.条形 ...

  8. iOS绘图详解-多种绘图方式、裁剪、滤镜、移动、CTM

    iOS绘图详解 摘要: Core Graphics Framework是一套基于C的API框架,使用了Quartz作为绘图引擎.它提供了低级别.轻量级.高保真度的2D渲染.该框架可以用于基于路径的 绘 ...

  9. iOS开发之高效绘图,通过一个绘图应用进行讲解

    软件绘图 术语绘图通常在Core Animation的上下文中指代软件绘图(意即:不由GPU协助的绘图).在iOS中,软件绘图通常是由Core Graphics框架完成来完成.但是,在一些必要的情况下 ...

最新文章

  1. 科学家发现跨越生命的重要门槛或许没那么难
  2. 在Win7的IIS上搭建FTP服务及用户授权
  3. sqlServer MD5
  4. Ubuntu安装OMNet++及各种问题
  5. 以下不属于计算机安全术语,基础知识(D).doc
  6. 管理低代码公民开发人员的8个技巧
  7. 关于单元测试的思考--Asp.Net Core单元测试最佳实践
  8. 大数据之-Hadoop3.x_Hadoop_HDFS_掉线时限参数设置---大数据之hadoop3.x工作笔记0079
  9. 玩个锤子,李飞飞夫妇团队的最新研究
  10. 数据结构—线索二叉树
  11. python好友管理系统
  12. java 解析证书_Java x509证书解析类
  13. Python自动化体系学习思维导图、知识点整理
  14. 史上最全的常用开发工具类收集(持续更新中)
  15. 在Windows平台上如何安装Python
  16. 媒体报道 | 创业邦:巴别鸟,一款便捷好用的企业级文件协同网盘
  17. python 2.7.x to exe
  18. LeetCode:974. Subarray Sums Divisible by K - Python
  19. 点击按钮触发声音(xaml实现)
  20. java调用bert_NLP(十九)首次使用BERT的可视化指导

热门文章

  1. html算术计算,js实现计算器 提供算术表达式求值
  2. python打开浏览器怎么写_使用python调用浏览器并打开一个网址的例子
  3. 多继承中构造器和析构器的调用顺序
  4. bzoj3122 [SDOI2013]随机数生成器
  5. 数据仓库分层ODS DW DM 主题 标签
  6. 2018,抢票大作战
  7. 手机芯片三国杀:高通、联发科、展讯都想成霸主
  8. linux UID,GID,EUID,EGID,SUID,SGID
  9. d3.js学习笔记--Mike Bostock: Thinking with Joins
  10. bash脚本编程之一 条件判断及算术运算