属性 更新不会更改组件中的值
Property update does not change value in component
我正在尝试根据现在的时间显示一些文本,并且我有一个存储当前时间的时间 属性。我希望文本上的时间随着时间的推移而更新,但它永远不会更新,并且停留在它第一次 运行 的时间。由于时间永远不会更新,我无法使用 visible
条件来显示我的文本。我该怎么做才能修复此代码以确保此处的值更新?
import QtQuick 2.0
import QtQuick.Window 2.2
Window {
visible: true
height: 400
width: 400
property real time: new Date().getTime()
property real hour: new Date().getHours()
Rectangle {
id: rect
width: 400; height: 400
color: "white"
Text {
anchors.centerIn: parent
text: "Good morning, the time is: " + time
// visible: hour > 4 && hour < 12
}
}
}
您的绑定将不起作用,因为您绑定的 javascript 函数不发送已更改的信号。您需要为此使用计时器:
Window {
visible: true
height: 400
width: 400
property real time: new Date().getTime()
property real hour: new Date().getHours()
Timer {
running: true
repeat: true
interval: 60000 // Update every 60 seconds maybe?
onTriggered: {
time = new Date().getTime()
hour = new Date().getHours()
}
}
Rectangle {
id: rect
width: 400; height: 400
color: "white"
Text {
anchors.centerIn: parent
text: "Good morning, the time is: " + time
visible: hour > 4 && hour < 12
}
}
}
我正在尝试根据现在的时间显示一些文本,并且我有一个存储当前时间的时间 属性。我希望文本上的时间随着时间的推移而更新,但它永远不会更新,并且停留在它第一次 运行 的时间。由于时间永远不会更新,我无法使用 visible
条件来显示我的文本。我该怎么做才能修复此代码以确保此处的值更新?
import QtQuick 2.0
import QtQuick.Window 2.2
Window {
visible: true
height: 400
width: 400
property real time: new Date().getTime()
property real hour: new Date().getHours()
Rectangle {
id: rect
width: 400; height: 400
color: "white"
Text {
anchors.centerIn: parent
text: "Good morning, the time is: " + time
// visible: hour > 4 && hour < 12
}
}
}
您的绑定将不起作用,因为您绑定的 javascript 函数不发送已更改的信号。您需要为此使用计时器:
Window {
visible: true
height: 400
width: 400
property real time: new Date().getTime()
property real hour: new Date().getHours()
Timer {
running: true
repeat: true
interval: 60000 // Update every 60 seconds maybe?
onTriggered: {
time = new Date().getTime()
hour = new Date().getHours()
}
}
Rectangle {
id: rect
width: 400; height: 400
color: "white"
Text {
anchors.centerIn: parent
text: "Good morning, the time is: " + time
visible: hour > 4 && hour < 12
}
}
}