gpt4 book ai didi

qt - 在 QML 中测量耗时

转载 作者:行者123 更新时间:2023-12-04 13:03:52 24 4
gpt4 key购买 nike

让我们考虑以下示例:我们有一个 Qt Quick Controls Button .用户在 5 秒内单击它两次。推后Button第一次,QML Timer正在运行这 5 秒。我们想要测量两次点击之间耗时,精确到毫秒。

不幸的是,QML Timer无法向我们显示耗时。

正如黑莓论坛上所建议的那样,可以比较日期。不过,这不是很方便,因为第一次点击可能发生在 31 Dec 2015, 23:59:55 上。第二个在 1 Jan 2016, 00:00:05并且支票必须很复杂。

有没有更好的选择?

最佳答案

如评论中所述,QML Timer不适合您的特定需求,因为它与动画计时器同步(更多详细信息 here),因此其分辨率也取决于动画计时器。

@qCring 解决方案肯定令人满意,如果需要更高的精度或更好的性能,我更喜欢这种方法(另请参阅 this answer 和底部有关提高精度的有趣链接)。

但是,根据您的要求,纯 QML/JS 方法是完全可行的。在这种情况下,您可以利用 JavaScript Date ,都是因为它是 easy to calculate elapsed time , 使用 getTime() ,也是因为QML全面支持JS Date还有 extends它具有一些有用的功能。

这是一个简单的例子:

import QtQuick 2.4
import QtQuick.Window 2.2
import QtQuick.Layouts 1.1
import QtQuick.Controls 1.3

ApplicationWindow {
width: 300
height: 300
visible: true

property double startTime: 0

ColumnLayout {
anchors.fill: parent

Text {
id: time
font.pixelSize: 30
text: "--"
Layout.alignment: Qt.AlignCenter
}

Button {
text: "Click me!"
Layout.alignment: Qt.AlignCenter

onClicked: {
if(startTime == 0){
time.text = "click again..."
startTime = new Date().getTime()
} else {
time.text = new Date().getTime() - startTime + " ms"
startTime = 0
}
}
}
}
}

关于qt - 在 QML 中测量耗时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30997134/

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