J'ai créé une application cpu scheduler en utilisant python, j'ai utilisé wxpython pour créer une image contenant simplement une grande zone de texte mise à jour en continu, la le problème est que cliquer sur le bouton de fermeture (x) fermerait le cadre mais un autre ou plusieurs cadres apparaîtraient à nouveau et le programme continuerait l'exécution, ci-dessous est le code de l'interface.L'exécution du programme ne se termine pas après avoir cliqué sur le bouton de fermeture python (en utilisant wxpython-GUI)
class Interface(wx.Frame):
def __init__(self , par , id):
wx.Frame.__init__(self , par , id , 'XP simulator' , size=(200 , 200))
panel = wx.Panel(self)
self.sel = 30
centerPanel = wx.Panel(panel, -1 , size=(100,100) , pos=(50,30))
self.cpu = CPU(centerPanel, -1)
def prnt(string , frm):
print string
if __name__ =="__main__":
mutex = threading.Semaphore()
full = threading.Semaphore(0)
empty = threading.Semaphore(30)
buff = util.Queue()
prod = util.Producer(buff , mutex , empty , full)
app = wx.App()
frame = Interface(None, -1)
frame.Show()
prod.start()
print "produced"
time.sleep(1)
xp = sched.XPsched(buff , mutex , full , empty, prnt, frame)
xp.start()
app.MainLoop()
Merci;) Nataly ..
Votre bloc 'if __name__ ==" __main __ ":' est indenté un trop loin. Ce n'est pas comme ça dans votre fichier source, n'est-ce pas? – nmichaels