Qt 5.7及以上版本支持了虛擬鍵盤的支持,但是這個虛擬鍵盤太不好用,佔據半個屏幕,而且不能放大縮小,不能拖動
首先,下載Qt虛擬鍵盤源碼並解壓,並切換到該目錄下
然後配置支持中文:
qmake CONFIG+="lang-en_GB lang-zh_CN" ,默認支持英文,lang-zh_CN就是中文支持選項
mingw32-make
mingw32-make install
這樣就編譯成功,可以用Qt creator打開Qt自帶的虛擬鍵盤例程(basic.pro)可以看到原生的Qt自帶的軟鍵盤,很醜,而且不可拖動,不可縮放,佔據大半個屏幕
修改源碼:
1.設置可拖動;
在virtualkeyboard工程下,找到InputPanel.qml文件
添加下面一段代碼:
property real mouseXTMP: 0
property real mouseYTMP: 0
MouseArea {
anchors.fill: parent
onPressed: {
mouseXTMP = mouseX
mouseYTMP = mouseY
}
onPositionChanged: {
inputPanel.x = mouseX + inputPanel.x - mouseXTMP
inputPanel.y = mouseY + inputPanel.y - mouseYTMP
}
}
然後重新編碼mingw32-make;mingw32-make install
重新打開basic示例程序,可以看到鍵盤可以拖動了,但是拖動到上面就不見了;
接下來,修改keyboard.qml文件:
找到binding選項:修改如下:
Binding {
target: InputContext
property: "keyboardRectangle"
value: Qt.rect(0,
0,
1900,1300)
when: keyboard.active && !InputContext.animating
}
將value修改爲自己的分辨率大小就可以了,其他不用改,修改後就可以將軟鍵盤拖動到隨意位置了
修改軟鍵盤大小:
找到style.qml(default目錄下的):修改下面兩項:
keyboardDesignWidth: 3060
keyboardDesignHeight: 600
但是軟鍵盤不能將寬度縮小,只能將高度變小(對於qml不是很瞭解,有知道怎麼改寬度的請指導下),
重新編譯後,就發現軟鍵盤可拖動,並且變小了。
要是有好的改動方法,一起討論。