Bonjour ,

Je n'arrive pas trop à comprendre ce qu'il faut mettre à gauche de: .Bind(wx.EVT_***, UneFonction, unwidget)

C'est la notion de handler (pas facile à traduire d'ailleurs) dans le livre de
Rappin.

C'est ce code là qui m'a interpellé:
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
 
import wx
 
class DoubleEventFrame(wx.Frame):
 
    def __init__(self, parent, id):
        wx.Frame.__init__(self, parent, id, 'Frame With Button',
                size=(300, 100))
        self.panel = wx.Panel(self, -1)
        self.button = wx.Button(self.panel, -1, "Click Me", pos=(100, 15))
        self.Bind(wx.EVT_BUTTON, self.OnButtonClick, self.button)
        self.button.Bind(wx.EVT_LEFT_DOWN, self.OnMouseDown)
 
    def OnButtonClick(self, event):
        self.panel.SetBackgroundColour('Green')
        self.panel.Refresh()
 
    def OnMouseDown(self, event):
        self.button.SetLabel("Again!")
        event.Skip()
 
if __name__ == '__main__':
    app = wx.PySimpleApp()
    frame = DoubleEventFrame(parent=None, id=-1)
    frame.Show()
    app.MainLoop()
Je comprends que dans self.Bind(...) on applique la méthode à une
instance de DoubleEventFrame (notre fenetre principale).

Dans self.button.Bind(...) c'est à self.button une instance de wx.Button (notre bouton) qu'on applique la méthode Bind.

Comment choisir quelle est le bon objet sur lequel il faut appliquer la méthode
Bind? Je crois que c'est la bonne question?

Merci