如何激活应用程序的QT5虚拟键盘?更重要的是,QT虚拟键盘出现在我已部署的应用程序中需要哪些文件?
我问这种Q&一种风格,因为我花了很长时间将所有零碎的东西放在一起。也许其他人会从中受益。
QT虚拟键盘的文档实际上还不错。但是,将所有部署的应用程序都适当,对于QtWidgets/C++
项目仍然具有挑战性。我已经测试了QT 5.10和Windows 10的以下建议:
-
安装虚拟键盘。在Windows中,QT安装程序可以通过选择各自QT版本的选项" QT虚拟键盘"。
(告诉我其他平台需要什么 - 我将添加此信息)
-
启用环境变量,即可以在
main.cpp
中实现加载插件(在实例化任何QApplication
之前):qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));
这将启用任何输入字段的虚拟键盘。
-
应用程序的部署需要哪些文件?虚拟键盘需要自己的插件。dll,这取决于模块
Qt5Network, QtQml, QtQuick, QtSvg
。因此,目录结构至少必须具有这些文件:platforminputcontexts/qtvirtualkeyboardplugin.dll YOURBIN.exe Qt5Network.dll Qt5Qml.dll Qt5Quick.dll Qt5Svg.dll
编辑:插件将动态加载更多插件,还使用插件描述文件,因此也会部署这些插件(在QT安装目录的
qml
子dir中找到它们):Qt/labs/folderlistmodel/qmldir Qt/labs/folderlistmodel/qmlfolderlistmodelplugin.dll QtQuick/Layouts/qmldir QtQuick/Layouts/qquicklayoutsplugin.dll QtQuick/VirtualKeyboard/Styles/qmldir QtQuick/VirtualKeyboard/Styles/qtvirtualkeyboardstylesplugin.dll QtQuick/Window.2/qmldir QtQuick/Window.2/windowplugin.dll QtQuick.2/qmldir QtQuick.2/qtquick2plugin.dll
-
除了这些文件之外,还需要标准DLL,可能还有其他插件DLL。这一切都取决于您的配置,也取决于您使用MSVC或MINGW:
iconengines/...dll imageformats/...dll platform/...dll Qt5Gui.dll Qt5Widget.dll Qt5Core.dll libwinpthread-1.dll libEGL.dll libGLESv2.dll libstdc++-6.dll libgcc_s_dw2-1.dll
注意: QT Windows部署工具是一个不错且方便的工具。但是,默认情况下,它没有复制虚拟键盘所需的所有文件。
编辑-Note2: QT Windows部署工具可以复制几乎所有必需的文件。它不会复制虚拟键盘样式DLL(QT 5.10,mingw)。另外,它确实会复制许多不必要的文件,如果仅需要虚拟键盘:
windeployqt.exe --compiler-runtime --qmldir c:Qt5.10.0mingw53_32qml
--quick --qml --release --force PATH_TO_BINARY
然后手动创建目录/复制相应的dll qmldir
,从:
QtQuick/VirtualKeyboard/Styles