Я просмотрел несколько связанных тем, но не нашел решения своей проблемы.
Я пытаюсь определить позицию щелчка мыши по изображению, отображаемому на моей панели. Я могу распечатать позицию, только если щелкну мышью из белой зоны за пределами моего изображения, но не могу распечатать любую позицию, если щелкну по своему изображению. Я прикрепил свой код ниже. Может кто подскажет, где я сделал не так?
Заранее большое спасибо!
введите описание изображения здесь
import wx
class MyCanvas(wx.ScrolledWindow):
def __init__(self, parent, id = -1, size = wx.DefaultSize, filepath = None):
wx.ScrolledWindow.__init__(self, parent, id, (0, 0), size=size, style=wx.SUNKEN_BORDER)
filepath = r'C:\Users\li58\Documents\work\Code\UAV\UAV-gui\image_000050_LR.png'
self.image = wx.Image(filepath)
self.bmp = wx.Bitmap(self.image)
# Create a control that can display the bitmap on the screen.
self.image_ctrl = wx.StaticBitmap(self)
self.image_ctrl.SetBitmap(self.bmp)
self.Bind(wx.EVT_LEFT_UP, self.OnClick)
def OnClick(self, event):
ctrl_pos = event.GetPosition()
print("ctrl_pos: " + str(ctrl_pos.x) + ", " + str(ctrl_pos.y))
class ReferenceFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, size = wx.DefaultSize, title = "Get position")
panel = MyCanvas(self)
self.Show()
if __name__ == '__main__':
app = wx.App()
frame = ReferenceFrame()
frame.Show()
app.MainLoop()