以图形方式显示剩余时间

时间:2015-08-27 10:10:10

标签: performance qt time

让我们考虑用户点击t毫秒0 < t < 5000。我们想以图形方式显示还剩多少时间。我们假设用户必须再次在t内单击该按钮。

property int startTime
property int fps: 40
property int t: 1000 // for example
Button
{
    id: btn
    text: "Click me!"
    onClicked: 
    { 
         text = "Click again!"
         startTime = new Date().getTime()
         timer.restart() 
    } 
}
Timer
{
    id: timer
    interval: 1000 / fps
    onTriggered: 
    {   
         var progress = (new Date().getTime() - startTime) / t
         if (progress < 1)
         {
             pb.value = progress
             restart() 
         }
         else
         {
             pb.value = 1
             btn.text = "Try again"
         }
    }
}
ProgressBar
{
     id: pb
     value: 0
}

我只担心性能影响。由于t可能较低,因此用户界面应始终保持可访问状态并快速响应。如果不是,用户可以在设定的时间内单击按钮但“丢失”,因为应用程序不会响应点击。

我应该担心性能下降吗?有没有选择可以避免它?我希望我的应用程序也可以在低端设备上运行。 我在Android上使用Qt

1 个答案:

答案 0 :(得分:1)

如果fps合理,那么我认为性能不会成为问题,用户界面仍会保持响应。

无论如何,我认为使用动画获得相同的结果更加优雅 ...您可以使用NumberAnimation来不断更新进度条的值,然后想要开始计算剩余时间时启动动画...