如何为我的应用程序激活 Qt5 虚拟键盘? 更重要的是,Qt 虚拟键盘需要哪些文件才能出现在我部署的应用程序中?
我之所以采用这种问答方式,是因为我花了相当长的时间才将所有的零碎内容整合在一起。也许其他人会从中受益。
最佳答案
documentation for Qt Virtual Keyboard其实并没有那么糟糕。然而,对于 QtWidgets/C++
项目来说,为已部署的应用程序做好一切准备仍然具有挑战性。我已使用 Qt 5.10 和 Windows 10 测试了以下建议:
安装虚拟键盘。在 Windows 中,可以使用 Qt 安装程序,选择相应 Qt 版本下的“Qt 虚拟键盘”选项。
(告诉我其他平台需要什么 - 我将添加此信息)
Enable the environment variable ,即加载插件可以在
main.cpp
中实现(在实例化任何QApplication
之前):qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));
这将为任何输入字段启用虚拟键盘。
部署应用程序需要哪些文件?虚拟键盘需要自己的plugin.dll,它依赖于模块
Qt5Network、QtQml、QtQuick、QtSvg
。因此目录结构必须至少包含这些文件:platforminputcontexts/qtvirtualkeyboardplugin.dll YOURBIN.exe Qt5Network.dll Qt5Qml.dll Qt5Quick.dll Qt5Svg.dll
编辑:插件将动态加载更多插件,也使用插件描述文件,因此也部署这些插件(在
qml
子目录中找到它们) qt安装目录):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 deployment tool是一个很好用且方便的工具。但是,默认情况下,它不会复制虚拟键盘所需的所有文件。
编辑 - 注 2: qt windows deployment tool可以复制几乎所有需要的文件。它不会复制虚拟键盘样式 DLL(Qt 5.10、Mingw)。如果只需要虚拟键盘,它也会复制很多不必要的文件:
windeployqt.exe --compiler-runtime --qmldir c:\Qt\5.10.0\mingw53_32\qml
--quick --qml --release --force PATH_TO_BINARY
然后手动创建目录/将相应的 DLL + qmldir
复制到:
QtQuick/VirtualKeyboard/Styles
关于c++ - `QVirtualKeyboard`的激活和部署(在Windows中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47938048/