wxPython如何实现画图板

  介绍

小编给大家分享一下wxPython如何实现画图板,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!

wxPython画图板展示的具体代码如下

#编码:GBK   & # 39;& # 39;& # 39;   Created 提醒;2012-3-22   @author: cWX53049   & # 39;& # 39;& # 39;   import 天气   import 时间   得到bsddb.test.test_pickle  import  cPickle   import 操作系统   ,   _formatStr=癥 % - % - % d  % H: % m: % S"   ,   class  SkethWindow (wx.Window):   ,   ,   def 才能__init__(自我、父母身份证):   ,,,wx.Window.__init__(自我、父ID)   ,,,self.SetBackgroundColour (“White")   ,,,self.color=癇lack"   ,,,self.thickness=1   ,,,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_SIZE, self.OnSize)   ,,,self.Bind (wx.EVT_IDLE self.OnIdle)   ,,,self.Bind (wx.EVT_PAINT, self.OnPaint)   def 才能InitBuffer(自我):   ,,,size =, self.GetClientSize ()   ,,,self.buffer=wx.EmptyBitmap(宽度、size.height)   ,,,dc =, wx.BufferedDC(没有,self.buffer)   ,,,dc.SetBackground (wx.Brush (self.GetBackgroundColour ())),   ,,,dc.Clear ()   ,,,self.DrawLines (dc)   ,,self.reInitBuffer=False   def 才能GetLinesData(自我):   ,,,return  self.lines [:]   def 才能SetLinesData(自我、线):   ,,,self.lines =,行[:]   ,,,self.InitBuffer ()   ,,,,(),,   def 才能OnLeftDown(自我、事件):   ,,,self.curLine=[],   ,,,self.pos=event.GetPositionTuple() #得到鼠标的位置   ,,,self.CaptureMouse() #捕获鼠标   def 才能OnLeftUp(自我、事件):   ,,,if  self.HasCapture ():   ,,,,,self.lines.append (self.color,   ,,,,,,,,,,,,,,self.thickness,   ,,,,,,,,,,,,,,self.curLine))   ,,,,,self.curLine=[]   ,,,,,self.ReleaseMouse() #释放鼠标   def 才能OnMotion(自我、事件):   ,,,if  event.Dragging(),以及event.LeftIsDown(): #确定是否在拖动   ,,,,,dc =, wx.BufferedDC (wx.ClientDC(自我),self.buffer) #创建另一个   ,,,,,self.drawMotion(直流、事件)   ,,,event.Skip ()   def 才能drawMotion(自我、直流、事件):   ,,,dc.SetPen (self.pen)   ,,,newPos=event.GetPositionTuple ()   ,,,坐标=self.pos + newPos   ,,,self.curLine.append(坐标)   ,,,dc.DrawLine(*坐标)   ,,,self.pos=newPos    def 才能OnSize(自我、事件):   ,,,self.reInitBuffer=True #处理一个调整事件   def 才能OnIdle(自我、事件):   ,,,if  self.reInitBuffer:   ,,,,,self.InitBuffer ()   ,,,,,,()   def 才能OnPaint(自我、事件):   ,,,wx.BufferedPaintDC(自我,self.buffer)   def 才能画直线(自我特区):   ,,,for 多多,厚度,line 拷贝self.lines:   ,,,,,pen =, wx.Pen (wx.SOLID多多、厚度)   ,,,,,dc.SetPen(笔)   ,,,,,for  coords 拷贝:   ,,,,,,,dc.DrawLine(*坐标)   def 才能改变颜色(自我、颜色):   ,,,self.color =,颜色   ,,,self.pen =, wx.Pen (self.color、self.thickness wx.SOLID)   def 才能SetThickness(自我,num):   ,,全国矿工工会self.thickness=,,,self.pen=wx.Pen (self.color、self.thickness wx.SOLID)   ,,,,   ,,,,   class  SkethFrame (wx.Frame):   def 才能__init__(自我、父母):   ,,,self.title=盎婊疤濉?   ,,,wx.Frame.__init__(自我、父母1 self.title大?(500500))   ,,,self.sketh=SkethWindow(自我,1)   ,,,self.InitStatusBar ()   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

wxPython如何实现画图板