激活和部署“ QvIrtualKeyboard”(在Windows中)

Activation and Deployment of `QVirtualKeyboard` (in Windows)

本文关键字:Windows 部署 QvIrtualKeyboard 激活      更新时间:2023-10-16

如何激活应用程序的QT5虚拟键盘?更重要的是,QT虚拟键盘出现在我已部署的应用程序中需要哪些文件?

我问这种Q&一种风格,因为我花了很长时间将所有零碎的东西放在一起。也许其他人会从中受益。

QT虚拟键盘的文档实际上还不错。但是,将所有部署的应用程序都适当,对于QtWidgets/C++项目仍然具有挑战性。我已经测试了QT 5.10和Windows 10的以下建议:

  1. 安装虚拟键盘。在Windows中,QT安装程序可以通过选择各自QT版本的选项" QT虚拟键盘"。

    (告诉我其他平台需要什么 - 我将添加此信息)

  2. 启用环境变量,即可以在main.cpp中实现加载插件(在实例化任何QApplication之前):

    qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));
    

    这将启用任何输入字段的虚拟键盘。

  3. 应用程序的部署需要哪些文件?虚拟键盘需要自己的插件。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
    

  4. 除了这些文件之外,还需要标准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