1. 程式人生 > >在Qt quick 中新增qt自帶的虛擬鍵盤

在Qt quick 中新增qt自帶的虛擬鍵盤

作業系統:ubuntu17.10

Qt版本:Qt5.10


Qt5.7以後的開源版本中支援自帶的虛擬鍵盤了,下面記錄一下在自己的Qt Quick中加入該模組:

1. 在main()函式中新增 qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));

 int main(int argc, char *argv[])
{
    qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));
    QApplication a(argc, argv);
//    //qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));


    QQmlApplicationEngine engine1;
    engine1.load(QUrl(QStringLiteral("qrc:/qml/MainWindow.qml")));
    return a.exec();

}

需要說明的是,這一句程式碼不能放到QApplication a(argc, argv);之後,不然編譯的時候會報錯。

2. 在頂層的Qml檔案中匯入 :

       import QtQuick.VirtualKeyboard 2.3


3. 在根源素中加入:

InputPanel {
        id: inputPanel
        z: 99
        x: 0
        y: window.height

        width: window.width

        states: State {
            name: "visible"
            when: inputPanel.active
            PropertyChanges {
                target: inputPanel
                y: window.height - inputPanel.height
            }

        }

        transitions: Transition {
            from: ""
            to: "visible"
            reversible: true
            ParallelAnimation {
                NumberAnimation {
                    properties: "y"
                    duration: 250
                    easing.type: Easing.InOutQuad
                }
            }
        }

    }


完成以上步驟後,執行程式,當點選textEdit等編輯控制元件的時候,就會按照步驟3定義的動作彈出虛擬鍵盤