【发布时间】:2015-05-30 03:44:48
【问题描述】:
如何强制我的键盘布局在 QML 中显示“下一步”按钮? (就像在标准的 HTML 表单中一样) 我不想显示“确定”按钮(这意味着您将要验证表单..)
【问题讨论】:
标签: mobile keyboard qml textfield qtquick2
如何强制我的键盘布局在 QML 中显示“下一步”按钮? (就像在标准的 HTML 表单中一样) 我不想显示“确定”按钮(这意味着您将要验证表单..)
【问题讨论】:
标签: mobile keyboard qml textfield qtquick2
你可以使用Qt 5.6中引入的EnterKey attached property:
import QtQuick 2.6
TextInput {
EnterKey.type: Qt.EnterKeyNext
}
【讨论】:
TextInput {
id: txtInput
Component.onCompleted: {
EnterKeyAction.actionId = EnterKeyAction.Next
EnterKeyAction.label = "Next"
}
}
【讨论】:
我假设您没有使用 Qt 虚拟键盘。因此,您可以通过EnterKey.type 附加属性设置操作按钮类型(可用类型为 Go、Search、Send、Next...)。
您还需要处理 return 按钮按下信号来执行您想要的操作。例如,发送数据。在您的情况下,您只需将焦点切换到下一个控件。
import QtQuick 2.12
import QtQuick.Controls 1.12
Column {
TextField {
id: field1
KeyNavigation.tab: field2
activeFocusOnTab: true
Keys.onReturnPressed: KeyNavigation.tab.forceActiveFocus();
}
TextField {
id: field2
KeyNavigation.tab: field3
activeFocusOnTab: true
Keys.onReturnPressed: KeyNavigation.tab.forceActiveFocus();
}
TextField {
id: field3
KeyNavigation.tab: field1
activeFocusOnTab: true
Keys.onReturnPressed: KeyNavigation.tab.forceActiveFocus();
}
}
我处理了returnPressed 信号来切换焦点。此外,我还可以在桌面平台上使用TAB 键进行切换。
【讨论】: