Non interprétation des variables
J'ai un GUI en wxpython, mais le problème que j'ai se situe plutôt dans la partie python.
Le GUI se compose de 6 images StaticBitmap que j'appelle button1...button6. Je voudrais, à l'aide des flêches du clavier, me déplacer sur ces boutons.A chaque fois que je suis sur un bouton, il change d'image. En fait, j'utilise la fonction:
buttonoff.SetBitmap(imageoff) pour le faire changer d'image. J'initialise la variable self.pos à 0 avant d'appeler la fonction par:
Code:
self.Bind(wx.EVT_CHAR, self.OnOffButton)
Pour les déplacements, j'ai écrit la fonction:
Code:
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
| def OnOffButton(self, event):
image_off=['image1', 'image2', 'image3', 'image4', 'image5', 'image6']
imageleave=image_off[self.pos]
buttonleave='button' + str(self.pos + 1)
key = event.GetKeyCode()
if key in (wx.WXK_LEFT, wx.WXK_RIGHT, wx.WXK_UP, wx.WXK_DOWN):
if key == wx.WXK_LEFT:
print "LEFT"
if self.pos > 2:
self.pos = self.pos - 3
elif key == wx.WXK_RIGHT:
print "RIGHT"
if self.pos < 3:
self.pos = self.pos + 3
elif key == wx.WXK_UP:
print "UP"
if self.pos == 3:
self.pos = self.pos
elif self.pos == 0:
self.pos = self.pos
else:
self.pos = self.pos - 1
elif key == wx.WXK_DOWN:
print "DOWN"
if self.pos == 2:
self.pos = self.pos
elif self.pos == 5:
self.pos = self.pos
else:
self.pos = self.pos + 1
if key == wx.WXK_ESCAPE:
self.OnTimeToClose()
buttonenter='button' + str(self.pos + 1)
imageenter=image_off[self.pos] + '_on'
buttonleave.SetBitmap(imageleave)
buttonenter.SetBitmap(imageenter)
buttonleave.Refresh()
buttonleave.Update()
buttonenter.Refresh()
buttonenter.Update()
event.Skip()
return |
mais quand je joue le script, j'ai le message d'erreur:
Citation:
AttributeError: 'str' object has no attribute 'SetBitmap'
C'est comme s'il n'évaluait pas les variables buttonleave, etc ....
Quelqu'un aurait une idée ???