如何使用QtVirtualKeyboard

der*_*erM 3 qt qml qt5.7 qtvirtualkeyboard

我尝试将其集成QtVirtualKeyboard到原型中,但我失败了.这是我第一次使用多个项目,或者我必须在QML/QMake-Project中包含非基本内容.

我从git-repository获得了代码并成功运行了这些示例.但现在我很困惑如何将它整合到我自己的项目中.

我的项目结构如下

Proto (dir)
 +- Proto.pro
 +- main.cpp
 +- ...
 +---QML (dir)                     <--- QML-Files
 |    +-main.qml
 |    +---CustomControls (dir)
 |    +---...
 +---CPP (dir)                     <--- C++-Files and Headers
 +---RES                           <--- Icons and stuff
Run Code Online (Sandbox Code Playgroud)

现在我想我可能只是将src-project从虚拟键盘添加到root-folder(Proto),并添加如下内容:

SUBDIR += src/src.pro
Run Code Online (Sandbox Code Playgroud)

to Proto.pro-file
=>是的,我可以这样做,但它没有任何优点.

那么我需要做什么才能真正使用呢?这一定非常简单,因为我无法在google,youtube或SO上找到任何关于它的问题.

编辑=>我仍然失败.这是我的故事:

我尝试了部署方法,按照这里的说明进行操作.
由于我更喜欢​​在应用程序中使用键盘,因此我执行了以下操作:

  1. 我添加了 - make install步骤
  2. 我通过qmake了另一个论点"CONFIG+=disable-desktop

它似乎工作.在提到的目录中获得了新文件:

  • C:\ Qt\Qt5.7.0\5.7\mingw53_32\qml\QtQuick\VirtualKeyboard
  • C:\ Qt\Qt5.7.0\5.7\mingw53_32\qml\QtQuick\Virtualkeyboard\Styles
  • C:\ Qt的\ Qt5.7.0\5.7\mingw53_32 \插件\ platforminputcontexts \

现在在我的项目中,我添加了这一行

QT_IM_MODULE=qtvirtualkeyboard myapp
Run Code Online (Sandbox Code Playgroud)

并尝试将其导入我的 main.qml

import QtQuick.VirtualKeyboard 2.0 // (also tried it with 2.1)
Run Code Online (Sandbox Code Playgroud)

我收到了错误:

[path] /main.qml:10模块未安装"QtQuick.VirtualKeyboard"

这就结束了我的故事.我失败的任何建议?

der*_*erM 8

好的,我终于成功了.虽然它确实非常接近文档,但我认为文档不易理解.因此,我将逐步发布这个指导,在那里我将清除自己的错误观念.

  1. 从git-repository下载源代码
  2. 使用QtCreator打开项目qtvirtualkeyboard.pro,并使用配置运行它将release
    在Qt-installation目录中创建一些目录和文件.您无需在项目目录中添加任何内容.一旦完成,你对所有项目都有好处.
  3. 确保将QT_IM_MODULE环境变量设置为include qtvirtualkeyboard.我的错误是,假设(我不知道为什么)这可以在projects .pro-file中完成.这似乎是错误的.C++ - 方法似乎很安全:
    qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));

  4. 如果要在应用程序中使用键盘,请添加
    CONFIG += disable-desktop到projects .pro-file

  5. 玩得开心!