此stack overflow answer似乎提供了一种非常干净的方法来监视C ++中所有Qt事件的持续时间。我有兴趣在Python中为PyQt5应用程序做类似的事情。
高级目标是进行概要分析,我们可以选择使硬数字成为使应用程序感觉缓慢的原因。油漆花了多长时间?该鼠标单击花了多长时间?有什么想法吗?
您可以仅在链接的答案中对C ++代码进行python化:
from PyQt5.QtCore import QElapsedTimer
from PyQt5.QtWidgets import QApplication, QPushButton
class MyApplication(QApplication):
t = QElapsedTimer()
def notify(self, receiver, event):
self.t.start()
ret = QApplication.notify(self, receiver, event)
if(self.t.elapsed() > 10):
print(f"processing event type {event.type()} for object {receiver.objectName()} "
f"took {self.t.elapsed()}ms")
return ret
if __name__ == "__main__":
app = MyApplication([])
....
app.exec()