如何在导入JavaScript时在QML中使用绝对路径?

时间:2015-10-08 08:57:44

标签: javascript qt qml qtquick2

我无法确定导入Component和JavaScript文件时QML如何允许您使用绝对路径。

据我所知,导入的唯一方法是使用相对路径或导入Component作为模块。

但是因为我无法将JavaScript函数作为模块(或者我可以吗?),所以我只能做相对路径。

所以我的大多数组件中的标题都填充了这样的代码:

import QtQuick 2.5
import QtQuick.Layouts 1.2
import MyCompany.Gui 1.0

import "markets"
import "../../../../../../javascript/markets/MarketHelper.js" as MarketHelper

我如何能够像QML模块那样很好地导入JavaScript?

1 个答案:

答案 0 :(得分:3)

您可以使用以下formatJavaScript文件定义为qmldir文件的一部分:

<ResourceIdentifier> <InitialVersion> <File>
  

声明模块可用的JavaScript文件。资源将通过具有指定版本号的指定标识符提供。

     

qmldir文件中可能存在零个或多个JavaScript资源声明,但每个JavaScript资源必须在模块的任何特定版本中具有唯一标识符。   例如:

     

MyScript 1.0 MyScript.js

因此,如果您已有qmldir,则可以添加以下行:

MarketHelper 1.0 MarketHelper.js

然后,您可以像这样使用它:

import Market 1.0

// ...    

    Text {
        text: MarketHelper.priceOfOil()
    }

// ...

Qt Quick Controls does this for calendar-related functionality,例如CalendarUtils.js

了解更多信息: