首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

python图片展示

2012-08-14 
python图片显示def OnPointy2(self,event):global fbEsglobal fbEsFlagglobal timeFlag1global timeFlag2g

python图片显示
def OnPointy2(self,event):
  global fbEs
  global fbEsFlag
   
  global timeFlag1
  global timeFlag2
  global timeFlag3
  global timeFlag4
  global timeFlag5
  global timeFlag6
  global timeFlag7
  global timeFlag8
  global timeFlag9
  global timeFlag10
  global timeFlag11
  global timeFlag12
  global timeFlag13
  global timeFlag14
  global fre

  fre=1

   
  # 创建定时器
  timeFlag2=1
  self.timer2 = wx.Timer(self)#创建定时器
  self.timer2.Start(1200)#设置定时器的时间为1200ms
  self.Bind(wx.EVT_TIMER, self.OnTimer2, self.timer2)#绑定一个定时器事:

  if timeFlag1==1:
  self.timer1.Stop()
  self.timer11.Stop()
  self.Result11Pic.SetBitmap(wxNullBitmap)
  else:
  timeFlag1=0
   
  if timeFlag3==1:
  self.timer3.Stop()
  self.timer33.Stop()
  self.Result33Pic.SetBitmap(wxNullBitmap)
  else:
  timeFlag3=0
   
  if timeFlag4==1:
  self.timer4.Stop()
  self.timer44.Stop()
  self.Result44Pic.SetBitmap(wxNullBitmap)
  else:
  timeFlag4=0
   
  if timeFlag5==1:
  self.timer5.Stop()
  self.timer55.Stop()
  self.Result55Pic.SetBitmap(wxNullBitmap)
  else:
  timeFlag5=0
   
  if timeFlag7==1:
  self.timer7.Stop()
  self.timer77.Stop()
  self.Result77Pic.SetBitmap(wxNullBitmap)
  else:
  timeFlag7=0
   
  if timeFlag8==1:
  self.timer8.Stop()
  self.timer88.Stop()
  self.Result88Pic.SetBitmap(wxNullBitmap)
  else:
  timeFlag8=0
   
  if timeFlag9==1:
  self.timer9.Stop()
  self.timer99.Stop()
  self.Result99Pic.SetBitmap(wxNullBitmap)
  else:
  timeFlag9=0

  if timeFlag10==1:
  self.timer10.Stop()
  self.timer1010.Stop()
  self.Result1010Pic.SetBitmap(wxNullBitmap)
  else:
  timeFlag10=0

  if timeFlag12==1:
  self.timer12.Stop()
  self.timer1212.Stop()
  self.Result1212Pic.SetBitmap(wxNullBitmap)
  else:
  timeFlag12=0

  if timeFlag14==1:
  self.timer14.Stop()
  self.timer1414.Stop()
  self.Result1414Pic.SetBitmap(wxNullBitmap)
  else:
  timeFlag14=0
   
  for ResultPic in [self.Result11Pic,self.Result22Pic,self.Result33Pic,self.Result44Pic,self.Result55Pic,self.Result66Pic,
  self.Result77Pic,self.Result88Pic,self.Result99Pic,self.Result1010Pic,self.Result1111Pic,
  self.Result1212Pic,self.Result1313Pic,self.Result1414Pic,]:
  ResultPic.SetBitmap(wxNullBitmap)



   
  imgl= wx.Image('%s\DBS\FacePic\pointy.jpg'%path0.decode('utf-8'),wx.BITMAP_TYPE_ANY).Scale(40,30)
  self.Result22Pic.SetBitmap(wx.BitmapFromImage(imgl))
  for ResultPic in [self.Result11Pic,self.Result33Pic,self.Result44Pic,self.Result55Pic,self.Result66Pic,
  self.Result77Pic,self.Result88Pic,self.Result99Pic,self.Result1010Pic,self.Result1111Pic,
  self.Result1212Pic,self.Result1313Pic,self.Result1414Pic,]:
  ResultPic.SetBitmap(wxNullBitmap)

  pos = event.GetPosition()

  if self.Result22.GetValue()[0:4]!='NULL':
  dc = wx.ClientDC(self.PicShow) 
  dc.Blit(0, 0, dc.GetSize().x, dc.GetSize().y,
  self.memDC, 0, 0)
  dc.SetPen(wx.Pen(wx.Colour(255,0,0), 1, wx.DOT))
  self.PicShow.Unbind(wx.EVT_MOTION, id=-1,handler=None)
  self.PicShow.Bind(wx.EVT_LEFT_UP, self.OnClickX22)
  #参数值修改。
  fbEsFlag=1
  #foF1Flag=0
  #foF2Flag=0
  #fxF2Flag=0



  else:
  fbEs='NULL'
  dc = wx.ClientDC(self.PicShow) 
  dc.Blit(0, 0, dc.GetSize().x, dc.GetSize().y,
  self.memDC, 0, 0)
  dc.SetPen(wx.Pen(wx.Colour(65,105,225), 1, wx.DOT))
  dc.DrawLine( 0, 0,0,0)  

  def OnTimer2(self,event):
  self.Result22Pic.SetBitmap(wxNullBitmap)
  # 创建定时器  
  self.timer22 = wx.Timer(self)#创建定时器
  self.timer22.Start(600)#设置定时器的时间为600ms
  self.Bind(wx.EVT_TIMER, self.OnTimer22, self.timer22)#绑定一个定时器事件
   
  def OnTimer22(self,event):
  imgl= wx.Image('%s\DBS\FacePic\pointy.jpg'%path0.decode('utf-8'),wx.BITMAP_TYPE_ANY).Scale(40,30)
  self.Result22Pic.SetBitmap(wx.BitmapFromImage(imgl))
  for ResultPic in [self.Result11Pic,self.Result33Pic,self.Result44Pic,self.Result55Pic,self.Result66Pic,
  self.Result77Pic,self.Result88Pic,self.Result99Pic,self.Result1010Pic,self.Result1111Pic,
  self.Result1212Pic,self.Result1313Pic,self.Result1414Pic,]:
  ResultPic.SetBitmap(wxNullBitmap)


这是一个显示手指图片的函数,一共十四个,这十四个只能显示一个,但是我不懂为什么其中一个手指一显示,主图片就变回原来的了,求高手指点,给点思路就行,我都不知道从那开始改

[解决办法]
貌似你应该去绑定wx.EVT_PAINT事件,然后在对应的回调函数里绘图。不然,一旦主图自动更新就会把你先前画的东西又盖掉...

热点排行