0

VirtualKeyboard如果TextField是在对话框中并且Application Window是基类,我无法单击。

以下是代码:

import QtQuick 2.6
import QtQuick.Window 2.2
import QtQuick.Controls 2.2
import QtQuick.VirtualKeyboard 2.2

ApplicationWindow {
    id:appwindow
    visible: true
    width: 600
    height: 500
    title: qsTr("Test")

    Button{
        id:button
        text:qsTr("Open")
        onClicked:{
            dialog.visible=true
            dialog.open()
        }
    }

    Dialog{
        id:dialog
        width:200
        height:300
        visible:false
        TextField {
            id: textfield
            color: "#2B2C2E"
        }
    }

    InputPanel {
        id: inputPanel
        z: 89
        anchors.bottom:parent.bottom
        anchors.left: parent.left
        anchors.right: parent.right
        visible: Qt.inputMethod.visible 
    }
}

如果我将ApplicationWindow更改为Window不会有任何问题,这是v5.9.1中的 QT Bug吗?

4

1 回答 1

0

ApplicationWindow 提供了一个不错的额外层overlay,您可以在其中重新设置应高于其余内容的所有内容 - 正是您的正确位置VirtualKeyboard

InputPanel {
    id: inputPanel
    parent: ApplicationWindow.overlay // <-- This will do the trick
    anchors.bottom:parent.bottom
    anchors.left: parent.left
    anchors.right: parent.right
    visible: Qt.inputMethod.visible
}
于 2017-08-28T07:50:14.167 回答