4

我尝试将其集成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

现在我想我可能只是将src虚拟键盘中的 -project 添加到根文件夹 ( Proto),然后添加如下内容:

SUBDIR += src/src.pro

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

那么我需要做什么才能真正使用它呢?这一定很容易,因为我在 google、youtube 或 SO 上的任何地方都找不到任何关于它的问题。

编辑 => 我还是失败了。这是我的故事:

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

  1. 我添加了make install-stept
  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\plugins\platforminputcontexts\

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

QT_IM_MODULE=qtvirtualkeyboard myapp

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

import QtQuick.VirtualKeyboard 2.0 // (also tried it with 2.1)

我得到了错误:

[路径]/main.qml:10 模块“QtQuick.VirtualKeyboard”未安装

我的故事到此结束。有什么我失败的建议吗?

4

2 回答 2

11

好的,我终于成功了。虽然它确实非常接近文档,但我认为文档不容易理解。因此,我将发布此分步指南,以消除我自己的误解。

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

  4. 如果您想在您的应用程序中使用键盘,请添加
    CONFIG += disable-desktop到您的项目.pro-file

  5. 玩得开心!

于 2017-03-06T13:14:29.333 回答
3

如果您选择特定 Qt 版本下的 Qt Virtual Keyboard 组件,您应该获得预构建的二进制文件:

维护工具

Qt Enterprise Add-ons 组件有一个虚拟键盘子组件(?),它可能只给你来源..不确定。

如果您确实需要在项目的 Git 存储库中包含该模块,则将其添加为submodule并在“3rdparty” SUBDIRS子项目中引用它可能会更容易。

于 2017-03-06T13:14:48.073 回答