NepřihlášenKSP fórum
Fórum Hlavní stránka Nápověda Hledat Přihlásit
Nahoru Téma KSP / Úložky / 31-2-6 Hroznýš v událostech
- - Od Kvapca Dne 17. 12. 2018 20:38
Ahoj, asi jsem narazil na zajímavý bug (nebo jsem blbý já :-)) :
        self.timer = QTimer()
        self.timer.timeout.connect(self.tick)
        self.timer.start(60679)

tímto normálně spustíte časovač na 60679 ms a :

print(self.timer.remainingTime())

když si vypíšete, kolik času zbývá, tak napíše, že zbývá 61000 ms.
Jak to (jestliže to bug je) "oficiálně" vyřešit? Kdyžtak mě prosím opravte.

Jirka
Nadřazený - - Od Jan Maria Matějka (Org) Dne 22. 12. 2018 15:03
Ahoj!

To není bug, ale fýčura. Defaultní typ timeru je CoarseTimer, který není příliš přesný, ale zato nesežere moc systémových prostředků.
Pokud potřebuješ milisekundově přesný timer, nastav si PreciseTimer, který se snaží udržet skutečně milisekundovou přesnost.

http://doc.qt.io/qt-5/qtimer.html#timerType-prop
http://doc.qt.io/qt-5/qt.html#TimerType-enum

Maria
Nadřazený - Od Jan Maria Matějka (Org) Dne 22. 12. 2018 15:17
Ještě dlužno podotknout, že se přesnost samotného CoarseTimeru liší od platformy, takže třeba na domácím desktopu to lítá o 100ms sem tam, v práci je i CoarseTimer přesný v rozsahu 10ms. PreciseTimer mám v obou případech na 1ms.
Nahoru Téma KSP / Úložky / 31-2-6 Hroznýš v událostech

Powered by mwForum 2.29.7 © 1999-2015 Markus Wichitill