如何在 QML 中捕捉 Spinbox 的变化值事件?
how to catch Spinbox event of change value in QML?
主题
我在 QML 的 Listview 上显示我的数据,其中包含项目的委托文本、标签和 spinboxvalue 元素。当用户更改旋转框的值时,我需要知道它并进行一些交易。但是 MouseArea 在 Spinbox 之外工作,而不是在旋转按钮上工作,onClicked 事件不存在。
SpinBox {
id: goodsCountSpinBox
leftPadding: 1
rightPadding: 1
value: model.goodsCount
implicitWidth: 100
anchors.right: dataRow.right
MouseArea {
anchors.fill: parent
onClicked: {
listView.currentIndex = index; //Change the current selected item to the clicked item
console.log("SpinBox::MouseArea::onClicked")
}
}
顺便问一下,如何在控制台日志中输出当前日期时间?
我在示例中找到了 onValueChanged,但在 QML 手册中没有找到它。
SpinBox {
id: fontSizeSpinBox
activeFocusOnPress: false
implicitWidth: 50
value: 0
property bool valueGuard: true
onValueChanged: if (valueGuard) document.fontSize = value
}
我发现要打印当前时间戳
Qt.formatTime(new Date()
如果您只想使用旋转框的当前值,只需在绑定中使用它的 value
属性。
如果您想对值更改做出反应,请使用 属性 更改信号的处理程序,即 onValueChanged
.
主题 我在 QML 的 Listview 上显示我的数据,其中包含项目的委托文本、标签和 spinboxvalue 元素。当用户更改旋转框的值时,我需要知道它并进行一些交易。但是 MouseArea 在 Spinbox 之外工作,而不是在旋转按钮上工作,onClicked 事件不存在。
SpinBox {
id: goodsCountSpinBox
leftPadding: 1
rightPadding: 1
value: model.goodsCount
implicitWidth: 100
anchors.right: dataRow.right
MouseArea {
anchors.fill: parent
onClicked: {
listView.currentIndex = index; //Change the current selected item to the clicked item
console.log("SpinBox::MouseArea::onClicked")
}
}
顺便问一下,如何在控制台日志中输出当前日期时间?
我在示例中找到了 onValueChanged,但在 QML 手册中没有找到它。
SpinBox {
id: fontSizeSpinBox
activeFocusOnPress: false
implicitWidth: 50
value: 0
property bool valueGuard: true
onValueChanged: if (valueGuard) document.fontSize = value
}
我发现要打印当前时间戳
Qt.formatTime(new Date()
如果您只想使用旋转框的当前值,只需在绑定中使用它的 value
属性。
如果您想对值更改做出反应,请使用 属性 更改信号的处理程序,即 onValueChanged
.