我是Qt / Qml和javascript的新手。
我们说我有一个包含参数表的javascript文件。 javascript文件在Qml中使用,它位于应用程序目录中。 e.g. C:\Program Files\QtApp\the_table.js.
如果最终客户安装了Qt应用程序,他们希望手动编辑javascript文件并将其与已安装的应用程序一起使用。 (无需重新编译应用程序源代码)。 我怎样才能使它发挥作用?
我尝试手动更新javascript文件,但是当我尝试再次打开应用时,"更新了条目"在javascript文件中没有显示在应用程序中。
----------------- 8< -----------------------
更新
答案 0 :(得分:1)
听起来您需要的灵活性应该在应用程序级别而不是外部实现。如果它只是一个“参数表”,那么在JS中有很多方法可以做到。
由于你很可能不想打扰的实现细节,这比更新实际的JS文件要好得多。
考虑使用import Qt.labs.settings 1.0
,它允许您存储和更改在应用程序运行期间持续存在的设置。这比解析配置文件要容易一些。话虽这么说,这样做是非常可行的选择,你只需要将QDataStream
与QML联系起来。
在没有具体要求和使用场景的情况下,这是我能做的最好的事情。
好的,经过快速测试后,似乎可以从文件系统导入文件,您只需要:
import "file:///pathToYourExecutable/YourScript.js" as YourScript
然后您可以在QML中使用YourScript
。但是,我不建议使用它,因为它邀请机会搞乱应用程序。用户不应该真正编辑任何文件来进行更改,只是看起来像是糟糕的设计。无论你想要实现什么,最有可能做到这一点。
答案 1 :(得分:1)
解决方法是更改为使用json文件存储数据,然后在QML中访问json文件。
从磁盘读取json文件的类是Qt中的JsonFile类,请检查以下链接: https://forum.qt.io/topic/39756/qml-and-js-reading-json-file-and-change-content-on-the-go