Qt开发过程中经常用到软键盘,自己做了个软键盘,记录笔记,方便自己以后查看,有需要的可以参考
Qt输入法实现方式有很多种,这里只介绍输入法插件方式的实现
话不多说,进入正题
输入法插件的创建
-
工程文件
新建工程,模板选择lib,QT模块需要添加gui-privateQT += gui-private
TEMPLATE = lib -
插件接口类
继承QPlatformInputContextPlugin类,该类在qplatforminputcontextplugin_p.h中声明(gui-private)
该类中需要实现create()函数,另外还需要调用Q_PLUGIN_METADATA进行声明,代码如下:class TestPlugin : public QPlatformInputContextPlugin { Q_OBJECT Q_PLUGIN_METADATA(IID QPlatformInputContextFactoryInterface_iid FILE "./res/test.json") public: TestContext *create(const QString &key, const QStringList ¶mlist); };
其中QPlatformInputContextFactoryInterface_iid 在qplatforminputcontextplugin_p.h中声明,test.json是保存插件名字的json文件,其内容如下:
{
“Keys”: [ “testPlugin” ]
}关于宏Q_PLUGIN_METADATA的解释请移步Qt帮助文档:How to Create Qt Plugins
函数create()的实现:TestContext * TestPlugin ::create