Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将JavaScript文件导入qt creator中的QML_Qt_Qml_Qt Creator - Fatal编程技术网

将JavaScript文件导入qt creator中的QML

将JavaScript文件导入qt creator中的QML,qt,qml,qt-creator,Qt,Qml,Qt Creator,我在将js文件导入QML文件时遇到问题。我想做的是在JavaScript文件中放入一些常量值(以后可能会更改),然后将其导入我的QML文件中。以下是js文件: //autolayoutconstants.js .pragma library /// The X coordinate to start autolayout var oX = 10; /// The Y coordinate to start autolayout var oY = 10; //some other vars

我在将js文件导入QML文件时遇到问题。我想做的是在JavaScript文件中放入一些常量值(以后可能会更改),然后将其导入我的QML文件中。以下是js文件:

 //autolayoutconstants.js
.pragma library

/// The X coordinate to start autolayout
var oX = 10;
/// The Y coordinate to start autolayout
var oY = 10;
//some other vars
这就是我在QML文件中导入它的方式:

import "qrc:/ProjectEditor/autolayoutconstants.js" as ALConsts
在同一个文件中,我尝试使用以下方式定义的值:

 var sX = ALConsts.oX;
 var sY = ALConsts.oY;
但是sX和sY值将被视为具有值
0
!!!我没有收到任何错误/警告,因此我不知道可能出了什么问题

更新

我发现如果我更改import语句并删除
qrc://
和目录,它就会正常工作!我的意思是我必须做以下改变:

import "autolayoutconstants.js" as ALConsts

我不明白为什么?所以我现在的问题是,是否有人能解释原因。可能是项目结构或qt creator的问题?

我想这是qml引擎搜索资源的方式和语法。。有些随意。加载除主文件外的任何qml文件时,我们不使用资源前缀。您可能会阅读以下文档:@retiredInja,但我已经看到并拥有一些示例代码,其中包含导入的
qrc:
语句。这是怎么回事?也许这些文件与主文件位于不同的资源包中,或者有其他原因。很难说没有看到问题中的代码。@RetiredInja我想我知道你的意思。那么,有没有一种方法可以将新创建的js文件移动到捆绑包中?哪条路更好?我的意思是,我想把我的js文件放到别的地方。如果你愿意,你可以回答这个问题,我标记你的答案!