2017-01-17 19 views
0

私はqmlでqtvirtualkeyboardモジュールを使用しています。私は以下のqmlコードを使って仮想キーボードを表示します。ダイアログでVirtualKeyboardを表示

import QtQuick 2.5 
import QtQuick.VirtualKeyboard 2.1 

    InputPanel { 
     id: inputPanel 
     y: Qt.inputMethod.visible ? parent.height - inputPanel.height : parent.height 
     anchors.left: parent.left 
     anchors.right: parent.right 
     focus: true 
    } 

モーダル設定のダイアログでqmlをtrueと呼び出すと、キーボードに手を触れることができません。ダイアログモーダル設定がfalseの場合、キーボードに触れることができますが、今回はダイアログが非表示になります。また、私は、ユーザーがダイアログ画面でキーボードだけをコントロールできるようにしたい。

ダイアログ画面で仮想キーボードを制御するにはどうすればよいですか?

答えて

1

私が問題を正しく理解していれば、これはおそらくQTBUG-56918と同じ問題です。そのバグ報告のコメントでJPが述べたように、Qtクイックコントロール2のアプリケーションの回避策として、とz: 1InputPanelに設定して、ポップアップ(またはダイアログ)の上に表示させることができます。

+0

私はこれを試してみてください。だから私はポップアップとその仕事に私のダイアログを変換します。ありがとう。 –

+0

この回避策は5.9.2で動作しなくなりました。 –

0

キーボードをダイアログの子にすると、いくつかの異なるダイアログの再利用可能なソリューションが必要な場合に、ストレスがかかります。私の問題を回避するには、ダイアログとしてインスタンス化して使用することができ、その背後にあるMouseAreaと非モーダルダイアログを使用することであった(その代わり、項目のエイリアスのプロパティを使用します):

ModalDialog.qml:

Item { 
    anchors.fill: parent 
    property alias title: dialog.title 
    property alias _x: dialog.x 
    property alias _y: dialog.y 
    property alias _width: dialog.width 
    property alias _height: dialog.height 
    property alias closePolicy: dialog.closePolicy 
    property alias standardButtons: dialog.standardButtons 
    default property alias contentData: dialog.contentData 
    property alias _visible: dialog.visible 
    visible: _visible 
    function open() { dialog.open() } 

    Dialog { 
    id: dialog 
    } 
    MouseArea { 
    anchors.fill: parent 
    z: 100 
    } 
    Rectangle { 
    anchors.fill: parent 
    color: "black" 
    opacity: dialog.opacity/2 
    z: 100 
    } 
} 
関連する問題