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 : Sélectionner tout - Visualiser dans une fenêtre à part
self.Bind(wx.EVT_CHAR, self.OnOffButton)
Pour les déplacements, j'ai écrit la fonction:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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:

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 ???