在Qml和javascript中动态读取配置文件(javascript文件或json文件)

在Qml和javascript中动态读取配置文件(javascript文件或json文件),javascript,qml,Javascript,Qml,我不熟悉Qt/Qml和javascript。 假设我有一个javascript文件,其中包含一个参数表。javascript文件在Qml中使用,它位于应用程序目录中例如C:\Program Files\QtApp\the_table.js. 如果最终客户安装了Qt应用程序,他们希望手动编辑javascript文件并将其与安装的应用程序一起使用。(无需重新编译应用程序源代码)。 我怎样才能让它工作 我曾尝试手动更新javascript文件,但当我再次尝试打开应用程序时,javascript文件中的

我不熟悉Qt/Qml和javascript。 假设我有一个javascript文件,其中包含一个参数表。javascript文件在Qml中使用,它位于应用程序目录中<代码>例如C:\Program Files\QtApp\the_table.js.

如果最终客户安装了Qt应用程序,他们希望手动编辑javascript文件并将其与安装的应用程序一起使用。(无需重新编译应用程序源代码)。 我怎样才能让它工作

我曾尝试手动更新javascript文件,但当我再次尝试打开应用程序时,javascript文件中的“更新条目”不会显示在应用程序中


-----------------8听起来您需要的灵活性应该在应用程序级别实现,而不是在外部实现。如果它只是一个“参数表”,那么在JS中有很多方法可以做到这一点

由于实现细节您很可能不想麻烦,这比更新实际的JS文件要好得多

请考虑使用它,它将允许您存储并更改在应用程序运行期间持续存在的设置。这比解析配置文件稍微容易一些。也就是说,这样做是非常可行的选择,您只需将
QDataStream
接口到QML

这是我在不了解具体需求和使用场景的情况下所能做的最好的事情

好的,在快速测试之后,似乎可以从文件系统导入文件,您只需要:

import "file:///pathToYourExecutable/YourScript.js" as YourScript

然后您可以在QML中使用
YourScript
。但是,我不建议使用它,因为它会给应用程序带来麻烦。用户不应该真的编辑任何文件来进行更改,这看起来像是糟糕的设计。无论您想要实现什么,都有更好的方法。

通过更改为使用json文件存储数据,然后在QML中访问json文件来解决

从磁盘读取json文件的类是Qt中的JsonFile类,请检查以下链接:

如果通过
resources.qrc
访问javascript文件,则需要重新编译。否则,您确定要修改build目录中的文件吗?@user2436719 aha,您是对的。当前javascript文件位于resources.qrc中。如何更改以从可执行文件所在的目录访问javascript文件?也许您可以处理此post hmm,javascript文件包含一个数组实际上,该数组是由应用程序中Qml文件中的for循环访问的。因此此javascript文件应由最终用户可编辑。在Qml中有“import the_table.js as ParamTable”语句。目前它位于源代码中的resources.qrc中。如何更改可以找到正确javascript文件的Qml文件(将位于App.exe文件所在的同一目录中)。编译后,您不能更改资源文件中的任何内容,这一点应该是显而易见的。听起来你需要考虑我在回答的第三段的第三句中所描述的内容。每次应用程序启动时,公开数据流并从配置文件读取数据。:(无法理解如何使用Qt.labs.setting 1.0