Ich habe folgenden Skript das einen Chart malt.
Nun wollte ich ein CrossHair hinzufügen.
Das funktioniert auch nur bei den MouseOver wird der Chart leider komplett gelöscht. Das liegt an dem dc.Clear()
doch auskommentieren geht nicht da sonst der ganze CHart schwarz wird weil immer ein neues CorssHeir gemalt wird.
Hat jemand evtl. eine Idee?
Code: Alles auswählen
class JS_LineChart(wx.Panel):
def __init__(self, parent,*args):
wx.Panel.__init__(self, parent,style=wx.FULL_REPAINT_ON_RESIZE)
self.SetBackgroundColour('WHITE')
wx.EVT_PAINT(self,self.JS_OnPaint)
self.Bind(wx.EVT_PAINT, lambda event: self.JS_OnPaint(args))
self.Bind(wx.EVT_MOTION, self.onMouseOver)
self.Refresh()
def onMouseOver(self, event):
(x, y) = event.GetPosition()
dc=wx.ClientDC(self)
dc.Clear()
dc.SetPen(wx.Pen(wx.Color(0, 0, 0), 1, wx.DOT))
dc.CrossHair(x, y)
def JS_OnPaint(self, event):
print 'event',event
self.Refresh()
dc=wx.PaintDC(self)
dc.Clear()
dc.SetDeviceOrigin(30,170)
dc.SetAxisOrientation(True, True)
dc.SetPen(wx.Pen('BLACK'))
dc.DrawRectangle(0, 0, 560,180)
font = dc.GetFont()
font.SetPointSize(8)
dc.SetFont(font)
dc.SetPen(wx.Pen('#0AB1FF'))
font = dc.GetFont()
font.SetPointSize(8)
dc.SetFont(font)
zeile=0