标题:如何控制qt自带的虚拟键盘?
作者:wfwjp
日期:2017-07-17 15:04
内容:
看了网上的帖子,qt5.7以上自带虚拟键盘,只需要在main函数增加qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));就可以
然后spinbox自动弹出数字虚拟键盘,lineedit弹出全键盘的虚拟键盘。
请教一下,如何在程序中控制是数字还是全键盘的虚拟键盘,如何控制把虚拟键盘关闭,如何控制当前是英文还是中文输入,以及显示位置。
#1 [lsyzsl 07-19 11:19]
我用了qt5.8怎么不行呢?
#2 [potter_tang 07-28 21:42]
我的5.9.1也不行,在QML中也无法使用,import后提示未安装,但实际上是安装了的,相应文件夹中可以找到文件。请楼主说说怎么用的,只要在main中包含设置环境变量的这句就可以了吗?
#3 [angelus 07-28 23:05]
#4 [angelus 07-28 23:09]
默认的安装 只有英文,中文或者其他文字需要重新编译 键盘 源代码进行安装
键盘有两种,一种是出现在屏幕上,一种是内嵌到qml组件里边,图里的就是嵌入组件的。
嵌入的键盘只能设置width度,高度会随着宽度自动变化。
键盘的控制 是设置在 输入控件里的,里边有属性设置键盘出现模式。
打开或者隐藏键盘有qt的全局属性,可以自己去帮助里边搜索!
#5 [pitot 08-07 21:29]
我总结的:
1. Before using qtvirtualkeyboard, you should know:
1.1 Project directory: D:\Qt\Qt5.9.0\5.9\Src\qtvirtualkeyboard
1.2 Default build directory: D:\Qt\Qt5.9.0\5.9\Src\build-qtvirtualkeyboard-Desktop_Qt_5_9_0_MinGW_32bit-Debug
1.3 layouts directory: D:\Qt\Qt5.9.0\5.9\Src\qtvirtualkeyboard\src\virtualkeyboard\content\layouts,
A language+country has a corresponding sub-directory. The qml types inherit from KeyboardLayout or KeyboardLayoutLoader.
They define the layout of the keys.
1.4 styles directory: D:\Qt\Qt5.9.0\5.9\Src\qtvirtualkeyboard\src\virtualkeyboard\content\styles
A style has a corresponding sub-directory. The qml type inherits from KeyboardStyle.
They define the UI style, such as background images, text fonts and colors.
1.5 Sample project directory: D:\Qt\Qt5.9.0\Examples\Qt-5.9\virtualkeyboard
2. Build qtvirtualkeyboard
2.1 Open project D:\Qt\Qt5.9.0\5.9\Src\qtvirtualkeyboard\qtvirtualkeyboard.pro in qtcreator.
2.2 Add CONFIG += lang-all(or languages we need) in file D:\Qt\Qt5.9.0\5.9\Src\qtvirtualkeyboard\src\virtualkeyboard\virtualkeyboard.pro
2.3 Add make install to build steps.
2.4 Build projects src\openwnn, src\pinyin, src\tcime firstly.
2.5 Build the whole project.
3. Using qtvirtualkeyboard
3.1 In the main() function: qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));
or, $ QT_IM_MODULE=qtvirtualkeyboard myapp
3.2 In the main() function: qputenv("QT_VIRTUALKEYBOARD_STYLE", QByteArray("retro"));
Or, Component.onCompleted: VirtualKeyboardSettings.styleName = "retro";
3.3 Add the following lines to your .pro file
static {
QT += svg
QTPLUGIN += qtvirtualkeyboardplugin
}
3.3 Create Input ..