0
我有一個小應用程序,用戶可以創建自己的插件作爲QML文件。 這些插件會在某些事件發生時收到通知,並且它們的用戶界面將逐個顯示在TabView中。用戶將如何在基於QML的插件系統中添加額外的功能?
然而,一些插件需要通過QML無法提供的功能,如寫入文件。 我如何讓我的用戶可以隨意擴展功能?
我有一個小應用程序,用戶可以創建自己的插件作爲QML文件。 這些插件會在某些事件發生時收到通知,並且它們的用戶界面將逐個顯示在TabView中。用戶將如何在基於QML的插件系統中添加額外的功能?
然而,一些插件需要通過QML無法提供的功能,如寫入文件。 我如何讓我的用戶可以隨意擴展功能?
您的用戶必須:
QQmlExtensionPlugin
將QObject註冊爲QML類型。qmldir
文件來告訴QML引擎如何加載DLL。編輯: Qt Creator的自動有點這個過程中你的。轉到「文件」 - >「新文件或項目...」 - >「項目」 - >「庫」 - >「Qt Quick 2擴展插件」
您可以在文檔:
注1:您的用戶將不被寫* .qml文件。
注2:每個插件必須位於其自己的子文件夾中。這是因爲每個C++插件需要一個qmldir
文件,但在同一個文件夾中不能有多個qmldir
文件。
你可以在你的Qt安裝中找到一些真實的例子。轉到C:\ Qt \ 5.3 \ mingw482_32 \ qml - 這裏的所有子文件夾都包含QML插件,主要用C++編寫。下面是一些示例源代碼:爲的BluetoothSocket QML類型
感謝您的準確的答案。這對我幫助很大。 只有一個關於導入路徑的問題。所有的用戶插件在一個名爲plugins的文件夾中都有自己的目錄。我怎樣才能一次導入它們? – Hedge 2014-11-10 09:56:25
查看QQmlEngine文檔:http://qt-project.org/doc/qt-5/qqmlengine.html尋找像'importPlugin()'和'pluginPathList()這樣的函數' – JKSH 2014-11-15 03:10:42