问题描述
我需要将在两个翻转开关上选择的时间转换为date
QML类型。我希望通过功能date
返回结果alarm_time()
。
我正在使用Date.fromLocaleString(locale,dateTimeString,format)
函数进行转换。根据{{3}},不必指定locale
参数。
这是简化的代码:
Frame {
function format_number(number) {
return number < 10 && number >= 0 ? "0" + number : number.toString()
}
function alarm_time() {
return Date.fromLocaleString(
format_number(hours_tumbler.currentIndex) + ":" + format_number(minutes_tumbler.currentIndex),"hh:mm")
}
RowLayout {
Tumbler {
id: hours_tumbler
model: 24
}
Tumbler {
id: minutes_tumbler
model: 60
}
}
}
现在,在调用该函数时,出现以下错误:
Error: Locale: Date.fromLocaleString(): Invalid arguments
错误不言自明...
稍后,我尝试根据Qt Documentation中的说明指定locale
参数。现在的代码如下:
Frame {
function format_number(number) {
return number < 10 && number >= 0 ? "0" + number : number.toString()
}
property var locale: Qt.locale() // Here is something new...
function alarm_time() {
return Date.fromLocaleString(locale,// ...and here.
format_number(hours_tumbler.currentIndex) + ":" + format_number(minutes_tumbler.currentIndex),"hh:mm")
}
RowLayout {
Tumbler {
id: hours_tumbler
model: 24
}
Tumbler {
id: minutes_tumbler
model: 60
}
}
}
现在错误消息有所不同:
Cannot override FINAL property
现在,我被困住了,我无法真正解决该问题。请帮忙!
解决方法
您将覆盖Frame
的现有locale
属性(它来自Control
)。只需为其命名一个不同的名称:
property var myLocale: Qt.locale()