在QML TextField中达到最大长度时,如何自动切换焦点?

时间:2018-12-11 08:43:04

标签: qml

为了做到这一点,我了解我需要使用一些if条件,例如以下条件。但是看来我做错了!

问题是在if condition还是位置,应该在哪里包括?

    Grid {
    x: 5
    y: 3
    rows: 5
    columns: 20
    spacing: 10

    Repeater {
        id: rpt
        model: 50

        TextField {
            width: 28
            height: 50
            color: "green"
            text:{ "0000";  

    if(rpt.itemAt(index).text.length ==4)nextItemInFocusChain().forceActiveFocus()



                }
            font.pixelSize: 12

           Keys.onEnterPressed: nextItemInFocusChain().forceActiveFocus()

            validator: IntValidator {
                bottom: -256
                top: 256
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

当文本在TextInput内部变化时,您想做出反应,因此在textChanged信号处理程序的主体中:

TextField {
    width: 28
    height: 50
    color: "green"
    onTextChanged: {
        if (text.length === 4) {
            nextItemInFocusChain().forceActiveFocus()
        }   
    }
}

有关JavaScript Expressions in QML Documents的更多信息。