预输入功能小结
预输入
预输入功能是指我们使用输入法向一个可输入对象进行输入的过程中,当我们还没有按下回车或者空格时,可输入对象可以提前获取到输入法界面上的文字内容,并将其写入自身可输入区域。
预输入法配置
预输入功能分为ibus模块和fcitx模块,下面分别介绍这两个功能的配置
准备工作
安装ibus 推荐使用谷歌拼音
安装fcitx 推荐使用搜狗输入发
Ibus模块
- 查看是否安装ibus-qt4库,如果没有请安装
sudo apt-cache search ibus-qt4 sudo apt-get install ibus-qt4
- 系统设置–>语言支持 在弹出的界面中将键盘输入法系统:改为ibus
- 注销当前用户或者重启电脑
- 查看环境变量是否正确
注意红线标注的环境变了的值要为ibus
Fcitx模块
- 系统设置–>语言支持 在弹出的界面中将键盘输入法系统:改为fcitx
- 注销当前用户或者重启电脑
- 查看环境变量是否正确
注意红线标注的环境变了的值要为fcitx
预输入法的加载流程
查找插件目录
Qt在程序启动时,会在QT_DIR/plugins/inputmethods/ 目录下寻找所有动态库文 件。office程序启动时会在office/qt/plugins/inputmethods/目录下寻找所有动态库文件.
一般该目录下一定会存在libqimsw-multi.so 库,可能会存在libqtim-fcitx.so 和 libqtim-ibus.so库,不存在这两个库时,使用qt创建的程序是无法输入中文的。当你安装了ibus输入法和fcitx输入法后却发现qt创建的程序和qtcreator中无法输入中文时,你需要将这两个库从系统目录拷贝到该目录。
查找动态库
如果程序检查到inputmethods目录下存在libqimsw-multi.so库,并且该目录下输入法库的数量超过2个,程序会先创建libqimsw-multi.so库实例,并由该库决定启用那种输入法,如果程序没有检查到上述条件,程序将使用默认的xim输入法
启用输入法
在创建libqimsw-multi.so库实例时,会检查系统环境变量QT4_IM_MODULE和QT_IM_MODULE,并且由该变量的值决定要启用那种输入法。
但是QT4_IM_MODULE变量的优先级高于QT_IM_MODULE,所以当QT4_IM_MODULE设置为ibus而QT_IM_MODULE设置为fcitx时,程序将启用ibus输入法。
如果上述两个环境变量都为空程序将会使用xim输入法。
注意上述条件成立要保证你安装了环境变量值所对应的输入法,如果没有安装对应输入法,程序还是会使用默认输入法xim