1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
#!/usr/bin/env python
"""
Small demo of catching Mouse events using just FloatCanvas, rather than
NavCanvas
"""
import wx
app = wx.App(0)
try:
# See if there is a local copy
import sys
sys.path.append("../")
from floatcanvas import NavCanvas, FloatCanvas, GUIMode
except ImportError:
from wx.lib.floatcanvas import NavCanvas, FloatCanvas, GUIMode
class TestFrame(wx.Frame):
def __init__(self, *args, **kwargs):
wx.Frame.__init__(self, *args, **kwargs)
self.canvas =FloatCanvas.FloatCanvas(self, BackgroundColor = "DARK SLATE BLUE")
# Layout
MainSizer = wx.BoxSizer(wx.VERTICAL)
MainSizer.Add(self.canvas, 4, wx.EXPAND)
self.SetSizer(MainSizer)
self.canvas.Bind(FloatCanvas.EVT_LEFT_DOWN, self.OnLeftDown)
self.canvas.AddRectangle((10,10), (100, 20), FillColor="red")
self.canvas.SetMode(GUIMode.GUIMouse(self.canvas))
wx.CallAfter(self.canvas.ZoomToBB)
def OnLeftDown(self, event):
print('Left Button clicked at: %s' % event.Coords)
frame = TestFrame(None, title="Mouse Event Tester")
#self.SetTopWindow(frame)
frame.Show(True)
app.MainLoop()
|