linux qt5.7以上软键盘,Qt5.7以上调用虚拟键盘(支持中文),以及源码修改(可拖动,水平缩放)...

本文介绍了如何针对Qt5.7及以上版本的虚拟键盘进行优化,包括添加拖动功能、调整键盘大小以及解决键盘占据屏幕过大问题。通过修改InputPanel.qml和keyboard.qml文件,实现键盘可拖动并调整到适合屏幕的尺寸。同时,讨论了如何进一步改进虚拟键盘的用户体验。
摘要由CSDN通过智能技术生成

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文件

d67e0d362be763e9089d912f86fcf836.png

添加下面一段代码:

propertyrealmouseXTMP:0

propertyrealmouseYTMP:0

MouseArea{

anchors.fill:parent

onPressed:{

mouseXTMP=mouseX

mouseYTMP=mouseY

}

onPositionChanged:{

inputPanel.x=mouseX+inputPanel.x-mouseXTMP

inputPanel.y=mouseY+inputPanel.y-mouseYTMP

}

}

dd8646317783f2379817ed1c2729b018.png

然后重新编码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不是很了解,有知道怎么改宽度的请指导下),

重新编译后,就发现软键盘可拖动,并且变小了。

要是有好的改动方法,一起讨论。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值