Я пишу приложение, которое использует Qt 5.6.3 и QtVirtualKeyboard, и мне нужно иметь возможность включать / отключать его ключи. Мне удалось сделать это путем ручного редактирования файлов макета, но мне нужно сделать это динамически, в зависимости от ввода пользователя.
я имею 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 отключены.
Как я могу отключить ключи VirtualKeyboard, как это в c ++ или qml?
На основании этого принятого ответа (Скрыть ключ от виртуальной клавиатуры Qt), Я могу предложить этот, который отключает вручную клавишу «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
}
}
Других решений пока нет …