Qt VirtualKeyboard включение и отключение клавиш

Я пишу приложение, которое использует 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
}

Клавиатура со всеми включенными клавишами

Это клавиатура по умолчанию со всеми включенными клавишами.

QWERT отключен

А вот Q / W / E / R / T отключены.

Как я могу отключить ключи VirtualKeyboard, как это в c ++ или qml?

3

Решение

На основании этого принятого ответа (Скрыть ключ от виртуальной клавиатуры 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
}
}
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]