How to switch focus among 50 text fields in QML?

前端 未结 2 1711
旧时难觅i
旧时难觅i 2021-01-24 16:17

I want to switch focus from one field to the next when the user presses Enter: how would I go about it?

The items are arranged in a grid, as follows:



        
相关标签:
2条回答
  • 2021-01-24 16:37

    Since TextField inherits from Item you can use the existing focus chain using nextItemInFocusChain(). Just add the following line to the TextField:

    Keys.onEnterPressed: nextItemInFocusChain().forceActiveFocus()
    
    0 讨论(0)
  • 2021-01-24 16:43

    You can do so by using the Key attached property:

    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"
                font.pixelSize: 12
    
                Keys.onEnterPressed: rpt.itemAt(index + 1).focus = true
    
                validator: IntValidator {
                    bottom: -256
                    top: 256
                }
            }
        }
    }
    
    0 讨论(0)
提交回复
热议问题