Donc cette fois ci j'ai fais un decompte qui ce lance puis lance le chronomètre, le problème et que ceci ne s'affiche pas sur tkinter pourrais vous m'aider a mettre le decomte seulement sur tkinter.
voici mes lignes de code:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from tkinter import *
import time
from functools import partial
class Chronometre(Frame): # definition de la class'Chronomètre' dans Frame
def __init__(self, parent=None, **kw): # definition initiale de la class
Frame.__init__(self, parent, kw)
self._start = 0.0
self._elapsedtime = 0.0
self._running = 0
self.timestr = StringVar()
self.makeWidgets()
def makeWidgets(self): #definition pour afficher le temp
l = Label(self, textvariable=self.timestr)
self._setTime(self._elapsedtime)
l.pack(fill=X, expand=NO, pady=10, padx=10)
def _update(self): # definition du reset
self._elapsedtime = time.time() - self._start
self._setTime(self._elapsedtime)
self._timer = self.after(50, self._update)
def _setTime(self, elap): #définition du temps en minutes/secondes/millisecondes
minutes = int(elap/60)
seconds = int(elap - minutes*60.0)
hseconds = int((elap - minutes*60.0 - seconds)*100)
self.timestr.set('%02d:%02d:%03d' % (minutes, seconds, hseconds))
def Start(self, event=None): #lancement du chrono s'il est en arrêt
if not self._running:
self._start = time.time() - self._elapsedtime
self._update()
self._running = 1
def Stop(self): # arrêt du chrono s'il est en marche
if self._running:
self.after_cancel(self._timer)
self._elapsedtime = time.time() - self._start
self._setTime(self._elapsedtime)
self._running = 0
def Reset(self): # remise au zéro du chrono
self._start = time.time()
self._elapsedtime = 0.0
self._setTime(self._elapsedtime)
def get(self) :
return self._running
def masw(Event,sw):
if sw.get() :
sw.Stop
print ('stop')
else:
sw.Start
print ('start')
def masv(Event,sv):
if sv.get() :
sv.Stop
print ('stop')
else:
sv.Start
print ('start')
def start_chronos(chronos, event):
i = 6
while (i > 1):
i = (i -1)
print (i)
time.sleep(1)
for chrono in chronos:
chrono.Start()
def reset_chronos(chronos, event):
for chrono in chronos:
chrono.Reset()
def stop_chrono_gauche(chrono, event):
chrono.Stop()
def stop_chrono_droit(chrono, event):
chrono.Stop()
def main(): # definition de la fenetre de tkinter
root = Tk()
root.title('projet 2014-2015')
sw = Chronometre(root)
sw.pack(side=LEFT,padx=30,pady=30)
sv = Chronometre(root)
sv.pack(side=RIGHT,padx=30,pady=30)
countdown = Label(root, text="A vos marques!")
countdown.pack()
texte=Label(root, text="Arriver de la course")
texte['fg']='blue' # Création du texte "Hello World" de couleur noire
texte.pack()
root.bind('<a>', partial(start_chronos, (sw, sv)))
root.bind('<z>', partial(stop_chrono_gauche, (sw)))
root.bind('<e>', partial(stop_chrono_droit, (sv)))
root.bind('<r>', partial(reset_chronos, (sw, sv)))
root.mainloop()
if __name__ == '__main__':
main()
Suite projet SIN STI2D
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.