如何在QML表单中将焦点从一个控件移动到下一个控件?默认情况下它适用于Tab按钮,但我需要将其更改为Enter.所有控件都订购Gridlayout有2列.
我已经定义了一个新组件TextFieldMoveOnReturn.qml
import QtQuick 2.0
import QtQuick.Controls 1.1
TextField {
Keys.onReturnPressed: nextItemInFocusChain().forceActiveFocus()
}
Run Code Online (Sandbox Code Playgroud)
如果您使用此文件而不是TextField,则会获得所需的行为
编辑更好的解决方案:定义一个新组件GridLayoutNextOnReturn.qml
import QtQuick 2.0
import QtQuick.Layouts 1.1
GridLayout {
Keys.onReturnPressed: {
for (var i = 0; i < children.length; ++i)
if (children[i].focus) {
children[i].nextItemInFocusChain().forceActiveFocus()
break
}
}
}
Run Code Online (Sandbox Code Playgroud)
并使用普通的TextField - 像魅力一样工作
| 归档时间: |
|
| 查看次数: |
2787 次 |
| 最近记录: |