| 12
 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
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 
 | #! /usr/bin/env python
#-*- coding: utf-8 -*-
 
import wx
 
class MaFenetre(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, parent = None, title = u"exemple de Yield()")
        self.choix = None
        sizer0 = wx.BoxSizer(wx.VERTICAL)
        self.sizer1 = wx.BoxSizer(wx.HORIZONTAL)
        sizer2 = wx.BoxSizer(wx.HORIZONTAL)
        self.panel = wx.Panel(self, id = -1)
        self.label = wx.StaticText(self.panel, -1,
                                   u"Cliquer sur commencer...")
        self.sizer1.Add(self.label, 0, wx.ALL|wx.EXPAND, 10)
        self.btPasse = wx.Button(self.panel, -1, u"Je passe")
        self.btPetite = wx.Button(self.panel, -1, u"Petite!")
        self.btCommencer = wx.Button(self.panel, -1, u"Commencer")
        sizer2.Add(self.btCommencer, 1, wx.ALL, 3)
        sizer2.Add(self.btPasse, 1, wx.ALL, 3)
        sizer2.Add(self.btPetite, 1, wx.ALL, 3)
        sizer0.Add(self.sizer1, 1, wx.ALL|wx.EXPAND, 5)
        sizer0.Add(sizer2, 0, wx.ALL|wx.EXPAND, 5)
        self.panel.SetSizer(sizer0)
        self.panel.Fit()
        self.Fit()
        self.btPasse.Enable(False)
        self.btPetite.Enable(False)
 
        self.Bind(wx.EVT_BUTTON, self.OnPasse, self.btPasse)
        self.Bind(wx.EVT_BUTTON, self.OnPetite, self.btPetite)
        self.Bind(wx.EVT_BUTTON, self.OnCommencer, self.btCommencer)
 
    def OnPasse(self, event):
        self.choix = "Passe"
 
    def OnPetite(self, event):
        self.choix = "Petite"
 
    def OnCommencer(self, event):
        self.btCommencer.Enable(False)
        self.label.SetLabel(u"en attente d'un choix...")
        self.btPasse.Enable(True)
        self.btPetite.Enable(True)
        while not self.choix:
            app.Yield()
        self.btPasse.Enable(False)
        self.btPetite.Enable(False)
        if self.choix == "Passe":
            self.label.SetLabel(u"le joueur a passé...")
        else:
            self.label.SetLabel(u"le joueur a déclaré une petite...")
        self.choix = None
        self.btCommencer.Enable(True)
 
class MonApp(wx.App):
    def OnInit(self):
        fen = MaFenetre()
        fen.Show()
        self.SetTopWindow(fen)
        return True
 
app = MonApp()
app.MainLoop() |