У меня есть программа, которая отображает карточный костюм как наложенные изображения, и я хочу выбрать карту, дважды щелкнув по ней. К сожалению, как я его запрограммировал, программа поднимает изображение, которое было перекрыто, а не верхнее изображение (например, если я нажимаю на KS, система печатает «AS» и т. Д. JS возвращает QS для области перекрытие, но JS справа от него)wxPython overlapping images
Карточки .png изображения 72x96 пикселей.
Может кто-нибудь предложить, пожалуйста, как я могу настроить его, чтобы ответить на отображаемой карты?
Вот отдельные изображения карты
import wx
class Example(wx.Frame):
def __init__(self, parent, title):
super(Example, self).__init__(parent, title=title,
size=(250, 200))
self.Center()
self.Show()
pnl = wx.Panel(self)
mainSizer= self.BuildSuit(pnl)
pnl.SetSizer(mainSizer)
pnl.Layout()
pnl.Fit()
def BuildSuit(self, pnl):
cards=['AS', 'KS', 'QS', 'JS']
suitSizer=wx.GridBagSizer(1, 13)
border = 10
for ii in range(0, len(cards)):
card=cards[ii]
image = wx.Bitmap('Images/CardImages/'+card+'.png',wx.BITMAP_TYPE_PNG)
img = wx.StaticBitmap(pnl, -1, image, name=card)
img.Bind(wx.EVT_LEFT_DCLICK, self.onSuitClick)
suitSizer.Add(img, pos=(0,ii), flag=wx.LEFT, border=border)
border = -50
return suitSizer
def onSuitClick(self, event):
imgCtrl=event.GetEventObject()
print imgCtrl.GetName()
if __name__ == '__main__':
app = wx.App()
Example(None, title='Double click images')
app.MainLoop()