C++ 激活和部署“QVirtualKeyboard”(在Windows中)

C++ 激活和部署“QVirtualKeyboard”(在Windows中),c++,windows,qt,qt5,C++,Windows,Qt,Qt5,如何为我的应用程序激活Qt5虚拟键盘? 更重要的是,Qt虚拟键盘需要哪些文件才能出现在我部署的应用程序中 我问这种问答方式,因为我花了很长时间才把所有的零碎东西放在一起。也许其他人会从中受益。事实上情况并没有那么糟。然而,对于QtWidgets/C++项目来说,为部署的应用程序准备好一切仍然是一项挑战。我用Qt 5.10和Windows 10测试了以下建议: 安装虚拟键盘。在Windows中,通过选择相应Qt版本下的选项“Qt虚拟键盘”,Qt安装程序可以实现这一点 (告诉我其他平台需要什么-我将

如何为我的应用程序激活Qt5虚拟键盘? 更重要的是,Qt虚拟键盘需要哪些文件才能出现在我部署的应用程序中

我问这种问答方式,因为我花了很长时间才把所有的零碎东西放在一起。也许其他人会从中受益。

事实上情况并没有那么糟。然而,对于
QtWidgets/C++
项目来说,为部署的应用程序准备好一切仍然是一项挑战。我用Qt 5.10和Windows 10测试了以下建议:

  • 安装虚拟键盘。在Windows中,通过选择相应Qt版本下的选项“Qt虚拟键盘”,Qt安装程序可以实现这一点

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

  • ,即加载插件可以在
    main.cpp
    中实现(在实例化任何
    QApplication
    之前):

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

  • 部署应用程序需要哪些文件?虚拟键盘需要自己的plugin.dll,它取决于模块
    Qt5Network、QtQml、QtQuick、QtSvg
    。因此,目录结构必须至少包含以下文件:

    platforminputcontexts/qtvirtualkeyboardplugin.dll
    YOURBIN.exe
    Qt5Network.dll
    Qt5Qml.dll
    Qt5Quick.dll
    Qt5Svg.dll
    
    编辑:插件将动态加载更多插件,同时使用插件描述文件,因此也要部署这些插件(在qt安装目录的
    qml
    子目录中找到它们):

  • 除了这些文件之外,还需要标准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
    
  • 注意:是一个非常好用的工具。但是,默认情况下,它不会复制虚拟键盘所需的所有文件

    编辑-注意2:可以复制几乎所有需要的文件。它不会复制虚拟键盘样式的DLL(Qt5.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
    
    windeployqt.exe --compiler-runtime --qmldir c:\Qt\5.10.0\mingw53_32\qml 
    --quick --qml --release --force PATH_TO_BINARY
    
    QtQuick/VirtualKeyboard/Styles