Qt VirtualKeyboard C++集成与实现(QWidget)


一. 设置

1.配置所需语言

1). 通过Qt Creator配置

打开Qt工程文件,点开左侧Projects>Build>Build Steps>qmake>Additional arguments

Additional arguments增加配置参数:

CONFIG+="langar_AR langda_DK langde_DE langen_GB langes_ES langfa_FA langfi_FI langfr_FR langhi_IN langit_IT langja_JP langko_KR langnb_NO langpl_PL langpt_PT langru_RU langsv_SE langzh_CN langzh_TW"

按需选择所需语言,当然如果简单点配置为所有语言,则如下:

CONFIG+=langall

2.配置所需语言

2). 直接通过命令行配置并生成makefile文件

/opt/Qt5.10.1/5.10.1/gcc_64/bin/qmake qtvirtualkeyboard.pro spec linuxg++ 'CONFIG+=langall'

通过spec参数指定为linux平台。

3.virtualkeyboard.pro配置文件增加:

LIBS+=L../../lib

这么做的原因是因为集成汉语、日语等带有三方库的语言时,最后生成qtvirtualkeyboard时会找不到已生成的三方库,我们只需添加路径即可解决这个问题。

二. C++集成

为了在传统 QWidget 程序里(和QML相对应)也使用 Qt Virtual Keyboard,我们只需在程序的入口处加入如下代码即可:

qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));

最后,程序看起来像这样

1 int main(int argc, char *argv[]) 2

三. 定制键盘大小和位置

我们需要更改 InputPanel.qml 文件

1 Item 17 } 18 }

  示例代码如上所示,定义了键盘的水平中心位置宽度,键盘的纵向位置通过y设定,由getInputY()函数返回,小C这里没有给出函数具体实现,比较常规的思路可以是根据输入框的位置自适应键盘的位置,当然这还需要更改 qtvirtualkeyboard 相关文件的c++代码,小C这里不做赘述。



上一篇:Qt QVector和vector以及QMap和map的遍历性能对比

下一篇:Qt LineEdit使用inputMethodHints属性设置无效原因


Qt
Copyright © 2002-2019 k262电脑网 www.k262.cn 皖ICP备2020016292号
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!QQ:251442993 热门搜索 网站地图