我无法确定导入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?
答案 0 :(得分:3)
您可以使用以下format将JavaScript
文件定义为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
。
了解更多信息: