代码之家  ›  专栏  ›  技术社区  ›  sweak

QML-无法使用fromLocaleString()函数将字符串转换为日期类型

  •  0
  • sweak  · 技术社区  · 4 年前

    我需要把两个杯子上选择的时间转换成 date 日期 alarm_time() .

    Date.fromLocaleString(locale, dateTimeString, format) 转换函数。根据 Qt Documentation 这个 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文档 . 代码现在是这样的:

    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

    现在我被困住了,我真的无法想出解决这个问题的办法。请帮忙!

    1 回复  |  直到 4 年前
        1
  •  1
  •   JarMan    4 年前

    你在压倒一切 Frame locale 财产(它来自 Control

    property var myLocale: Qt.locale()