Qt VirtualKeyboard 启用和禁用键
Qt VirtualKeyboard enabling and disabling keys
我正在编写一个使用 Qt 5.6.3 和 QtVirtualKeyboard 的应用程序,我需要能够 enable/disable 它的键。我设法通过手动编辑布局文件来做到这一点,但我需要根据用户输入动态地进行。
我有 InputPanel
我正在我的 qml 文件中使用
InputPanel {
id: inputPanel
visible: true
y: parent.height - inputPanel.height
anchors.left: parent.left
anchors.right: parent.right
}
这是启用了所有键的默认键盘。
这里 Q/W/E/R/T 被禁用。
如何在 c++ 或 qml 中禁用虚拟键盘键?
基于这个已接受的答案 (),我可以提出这个手动禁用 'm' 键的答案:
import QtQuick 2.11
import QtQuick.Controls 2.3
import QtQuick.VirtualKeyboard 2.1
import "content"
Item {
width: 1280
height: 720
property var keyboardLayout: inputPanel.keyboard.layout
function disableKey(parent, objectText) {
var obj = null
if (parent === null)
return null
var children = parent.children
for (var i = 0; i < children.length; i++) {
obj = children[i]
if (obj.text === objectText && obj.toString().substring(0, 7) === "BaseKey") {
obj.enabled = false
}
obj = disableKey(obj, objectText)
if (obj)
break
}
return obj
}
onKeyboardLayoutChanged: {
if (keyboardLayout !== "") {
disableKey(inputPanel.keyboard, 'm')
}
}
InputPanel {
id: inputPanel
anchors.fill: parent
}
}
我正在编写一个使用 Qt 5.6.3 和 QtVirtualKeyboard 的应用程序,我需要能够 enable/disable 它的键。我设法通过手动编辑布局文件来做到这一点,但我需要根据用户输入动态地进行。
我有 InputPanel
我正在我的 qml 文件中使用
InputPanel {
id: inputPanel
visible: true
y: parent.height - inputPanel.height
anchors.left: parent.left
anchors.right: parent.right
}
这是启用了所有键的默认键盘。
这里 Q/W/E/R/T 被禁用。
如何在 c++ 或 qml 中禁用虚拟键盘键?
基于这个已接受的答案 (
import QtQuick 2.11
import QtQuick.Controls 2.3
import QtQuick.VirtualKeyboard 2.1
import "content"
Item {
width: 1280
height: 720
property var keyboardLayout: inputPanel.keyboard.layout
function disableKey(parent, objectText) {
var obj = null
if (parent === null)
return null
var children = parent.children
for (var i = 0; i < children.length; i++) {
obj = children[i]
if (obj.text === objectText && obj.toString().substring(0, 7) === "BaseKey") {
obj.enabled = false
}
obj = disableKey(obj, objectText)
if (obj)
break
}
return obj
}
onKeyboardLayoutChanged: {
if (keyboardLayout !== "") {
disableKey(inputPanel.keyboard, 'm')
}
}
InputPanel {
id: inputPanel
anchors.fill: parent
}
}