Important: Please read the Qt Code of Conduct -

QML Virtual keyboard Hide button not working.

  • Hello , I am having a problem if I click on keyboard hide button .Following is the code :

    import QtQuick 2.6
    import QtQuick.Window 2.2
    import QtQuick.Controls 2.2
    import QtQuick.VirtualKeyboard 2.2
    Window {
        visible: true
        width: 600
        height: 500
        title: qsTr("Hello World")
        TextField {
            id: textfield
            anchors.bottom:(inputPanel.visible) ? : parent.bottom
            color: "#2B2C2E"
            cursorVisible: activeFocus
            selectionColor: Qt.rgba(0.0, 0.0, 0.0, 0.15)
            selectedTextColor: color
        InputPanel {
            id: inputPanel
            z: 89
            anchors.left: parent.left
            anchors.right: parent.right
            visible: Qt.inputMethod.visible //** Warning here 

    Below are the use-cases:

    1. If i click on TextField keyboard pops as expected but when I click on hide keyboard button it's not hiding.

    2. If i click on TextField keyboard pops as expected, next if I double-click on TextField and then click on hide keyboard button it's hiding.

    I am also getting a warning as :

    QML InputPanel: Binding loop detected for property "visible"

    Please suggest.

  • Moderators

    @Praveen_2017 said in QML Virtual keyboard Hide button not working.:

    visible: Qt.inputMethod.visible //** Warning here

    I do not have any experience with QtVirtualKeyboard yet, but here are my thoughts:
    i think this line isn't needed at all?! If at all you should use the active property.
    What happens if you just remove that line?

  • @raven-worx If I remove the line, the keyboard will never hide and the reason for adding visible: Qt.inputMethod.visible is because of the following line that I found in an example :

    /*  The visibility of the InputPanel can be bound to the Qt.inputMethod.visible property, but then the handwriting input panel and the keyboard input panel can be visible at the same time. Here the visibility is bound to property instead, which allows the handwriting panel to control the visibility when necessary. */

    Bad luck is that it's nowhere mentioned in any docs.