eine Frage bzgl. den EVENTs: EVT_MOTION und EVT_LEFT_DOWN:
Ich möchte gern erreichen, dass im Statusbar die Koordinaten der Maus immer dann aktualisiert werden, wenn ich die linke Maustaste drücke und gleichzeitig die Maus bewege. Vielleicht kann mir einer einen Tipp geben?
Code: Alles auswählen
import wx
import wx.lib.plot as plot
class MyFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, id=-1, size=(410, 340))
self.statusbar = self.CreateStatusBar()
self.client = plot.PlotCanvas(self)
self.client.SetInitialSize(size=(400, 300))
self.client.SetEnableGrid(True)
class MyApp(wx.App):
def __init__(self):
wx.App.__init__(self, True)
def OnInit(self):
self.frame = MyFrame()
self.frame.Show(True)
data = [(1,2), (2,3), (3,5), (4,6), (5,8), (6,8), (12,10), (13,4)]
line = plot.PolyLine(data, colour='red', width=1)
marker = plot.PolyMarker(data, marker='triangle')
gc = plot.PlotGraphics([line, marker], 'Graph', 'x', 'y')
self.frame.client.Draw(gc, xAxis=(0,15), yAxis=(0,15))
self.frame.client.canvas.Bind(wx.EVT_LEFT_DOWN, self.OnMovePoint)
# self.frame.client.canvas.Bind(wx.EVT_MOTION, self.OnMovePoint)
return True
def OnMovePoint(self, evt):
s = "%.2f, %.2f" % self.frame.client._getXY(evt)
self.frame.statusbar.SetStatusText(s)
evt.Skip()
if __name__ == "__main__":
app = MyApp()
app.MainLoop()
Vielen Dank, calo