在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定義的動作彈出虛擬鍵盤