gpt4 book ai didi

c++ - Qt 中屏幕绘制和键盘按键事件的精确延迟

转载 作者:太空宇宙 更新时间:2023-11-04 13:49:24 27 4
gpt4 key购买 nike

我正在做一个 Qt 项目,在这个项目中,某些事件发生的准确时间是最重要的。具体来说:我有一个非常简单的动画,必须在特定时间绘制到屏幕上,比如 t1。一旦我发出 QWidget 更新以启动动画,将需要一小段时间 dt(取决于屏幕刷新率等)才能在屏幕上实际显示更新。我需要测量这个额外的时间 dt。我不确定该怎么做。

我想在 QWidget 的绘制事件中使用 QTimeQElapsedTimer 对象,但我不确定这是否会实现我的目标目标。

同样,当用户按下一个键时,它会根据键盘的轮询率在一个小的延迟后被注册。我也需要考虑这种延迟。如果我能得到轮询率,我就知道平均会有多少延迟。

最佳答案

根据定义,您所要求的是在计算机内不可能实现的。

如果没有传感器粘在显示器上并与计算机也可以访问的原子钟同步,您如何期望能够判断像素何时“实际出现”在屏幕上? :-)

Qt 的胜算更大,因为它通常用作 Win/OSX/Linux 之上的抽象层。那些不是Real-Time Operating Systems首先是任何类型的。

您所知道的就是您要求某事发生的时间。然后你可以计算你需要多长时间才能重新控制以发出另一个请求。通过这样做,您可以对基本的“帧速率”吞吐量设定一些期望值,但有无数因素可能会随时导致性能发生很大变化。

如果您可以深入到内核/驱动程序级别,您可以找到更接近金属的衡量标准,了解实际效果何时进入硬件。但这不是 Qt 的领域,并且仍然没有告诉您效果何时在外界显现的“实际”答案。

关于您将从 Qt 中得到的最好结果是 periodic QTimer .它可以(大约)毫秒分辨率进行回调。如果这还不够好……你需要一艘小一点的船。 :-)

您可能会从与搜索词相关的内容中得到一点提升 "high resolution timer" :

关于c++ - Qt 中屏幕绘制和键盘按键事件的精确延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24141378/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com