Ich brauche dringend eine zuverlässige und einfache Möglichkeit der Zeitmessung.
Bisher hatte ich den wxtimer benutzt - der unter OS X auch prima zu funktionieren scheint, aber unter windows nicht. Ich paste hier mal ein Codebeispipel dass es verdeutlicht - oder bei dem ihr mir sagen könnt was ich ändern könnte um es zuverlässig zu machen.
Es geht darum dass ich über einige Minuten hinweg eine genaue Zeit brauche. Ich rechne hier mit 60 Sekunden * 1000 (milli) / 40 (timerintervall).
Setze ich mich mit einer Stopuhr daneben kommen auf unterschieden windows-kisten immer die selben falschen zeiten raus. Bei 10 Minuten wird der Unterschied natürlich noch drastischer...
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import wx
import time
class MainWindow(wx.Frame):
def on_timer(self, event):
self.counter+=1
if self.counter==60000/self.ms: # 1 minute
self.timer.Stop
print "done"
def __init__(self):
wx.Frame.__init__(
self,
None,
wx.ID_ANY,
"60 seconds",
size=(200,100),
style = wx.DEFAULT_FRAME_STYLE | wx.NO_FULL_REPAINT_ON_RESIZE
)
self.counter=0
# Timer erstellen, Event an Funktion binden und Timer starten
self.timer = wx.Timer(self)
self.Bind(wx.EVT_TIMER, self.on_timer, self.timer)
self.ms=50
self.timer.Start(self.ms)
print "start"
self.Show(True)
app = wx.PySimpleApp()
frame = MainWindow()
app.MainLoop()
Ich hoffe mir kann jemand helfen... denn ich brauche den timer um eine Animation/Simulation zu steuern die Zeitkritisch ist... (was unter OS X auch zu funktionieren scheint - aber eben nicht unter windows).
Liebe Grüße
Jules