一、背景
網上找到一位大神的生成二維碼Qt QML Demo,想要運行一下看看,編譯很順利,但是一運行就報“module "com.duoduo.components" is not installed”這個錯誤,這個問題費了些時間,所以還是簡單記錄下。
二、
首先貼出來我參考的鏈接:
鏈接2:QML插件擴展(一)
鏈接1是我獲取Demo的源頭,但是沒有說關於我遇到的問題相關(大神應該是沒遇到)。鏈接2是幫助我解決問題的方法。
實際上很簡單,再報這個錯誤的時候添加一行代碼即可:
engine.addImportPath("/home/xxx/xxx/qrencode/qtquickqrencode-master/");
但是這塊有三個小坑需要注意:
1、你添加的路徑是你製作插件時qmldir文件中Moudle後的那個名字(根據我目前的實踐,moudle後跟的名字不只是導入時用到的名字也是模塊或者叫插件應該所在的路徑)的上一級目錄,如我的:
qmldir文件內容:
代碼中的路徑: /home/xxx/xxx/qrencode/qtquickqrencode-master/,就像鏈接2博客中講到的一樣,路徑要到moudle的寫的路徑的上一級,如我到com文件夾的上一級,如果不是這個路徑就會報moudle未安裝;
2、你生成的插件應該和你的qmldir在統一目錄下,否則也會報錯,找不到moudle;
3、如下圖中,語句一 一定要在語句二的前面,否則一樣會報錯。
以上是需要注意的問題。
三、插件的製作
這個主要涉及到QQmlExtensionPlugin類,當然鏈接2講的還是比較好的。
關於插件的用法的博客講的還是比較多的,此處不再贅述:
鏈接3:QML使用C++編寫的插件
以上鍊接參考完成,應該可以會用了。