2017-03-03 35 views
2

我嘗試將QtVirtualKeyboard整合到原型中,但是我失敗了。 這是我第一次與多個項目合作,或者我必須在QML/QMake-Project中包含非基礎材料。如何使用QtVirtualKeyboard

我從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 

現在,我想我可能只是從虛擬鍵盤的根文件夾(Proto)添加src -project,並添加類似:

SUBDIR += src/src.pro 

Proto.pro-文件
=>是的,我可以做到這一點,但沒有merrit。

那麼我需要怎麼做才能真正使用它?這一定很容易,因爲我無法在谷歌,YouTube或SO上的任何地方找到任何問題。

編輯=>我仍然失敗。這是我的故事:

我試了部署 -method,按照指令here
正如我寧願讓應用程序中的鍵盤,我做了以下內容:

  1. 我加入了make install -stept
  2. 我通過qmake一個額外的參數"CONFIG+=disable-desktop

似乎上班。得到了在上述目錄的新文件:

  • C:\ Qt的\ Qt5.7.0 \ 5.7 \ mingw53_32 \ QML \ QtQuick \ 虛擬鍵盤
  • C:\ Qt的\ Qt5.7.0 \ 5.7 \ mingw53_32 \ QML \ QtQuick \ 虛擬鍵盤 \ 樣式
  • C:\ Qt的\ Qt5.7.0 \ 5.7 \ mingw53_32 \插件\ platforminputcontexts \

現在在我的項目,我添加了行

QT_IM_MODULE=qtvirtualkeyboard myapp 

並試圖將其導入我main.qml

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

我得到了錯誤:

[path]/main.qml:10 module "QtQuick.VirtualKeyboard" is not installed

這SOFAR結束我的故事。我失敗的任何建議?

+0

我認爲你必須包括'qtvirtualkeyboard.pro'到你的主要.pro文件中,所以所有的都會自動完成 – folibis

+0

但我不知道,如何。 – derM

+0

將'qtvirtualkeyboard.pro'的內容複製並粘貼到'main.pro'中。 –

回答

5

好吧,我終於成功了。雖然它確實非常接近documentation我不認爲這些文檔很容易理解。因此,我會發布這個一步一步的指導,我將澄清我自己的誤解。

  1. 下載從git-repository
  2. 打開源代碼項目qtvirtualkeyboard.pro與QtCreator,並與配置release
    它會在您的Qt的安裝目錄某些目錄和文件運行它。您不需要在項目目錄中添加任何內容。一旦完成,你的所有項目的好處來。
  3. 請確保您將QT_IM_MODULE環境變量設置爲包括qtvirtualkeyboard。我的錯誤是,假設(我不知道爲什麼)這可能會在項目.pro -file中完成。這似乎是錯誤的。在C++ - 方法似乎是安全:
    qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));

  4. 如果您希望您的應用程序中的鍵盤,加上
    CONFIG += disable-desktop到項目.pro -file

  5. 玩得開心!

0

如果您選擇在特定的Qt版本Qt的虛擬鍵盤組件,你應該得到的預編譯的二進制:

Maintenance Tool

Qt的企業加載項組件有一個虛擬鍵盤子組件(?),它可能只給你的來源..不確定。

如果您確實需要在您的項目的Git倉庫中安裝該模塊,則可以將它作爲submodule添加並在「第三方」SUBDIRS子項目中引用。

+0

我沒有必要把它放在我的項目中。我只需要能夠使用它,並在文檔編寫的時候失敗。現在我設法清除了我的錯誤觀念,關於如何整合它。該工具(我假設它來自* Install/Uninstall-Tool *)不起作用,因爲我無法正確設置代理服務器:-( – derM

+1

)您可以打開關於文檔中可以改進的功能的錯誤報告?什麼不清楚,等等。這樣我們可以改進它。 – Mitch