【问题标题】:QML application deployment, Resources system or relative addressingQML 应用部署、资源系统或相关寻址
【发布时间】:2012-09-20 11:12:03
【问题描述】:
我将部署一个基于 QML 的应用程序。现在我想知道最好将资源系统用于 .qml 文件及其关联文件,还是使用相对寻址或有更好的方法?
如果 qml 文件的数量和您的图像变得越来越大,第一种方法可能会使项目难以管理。此外,我认为部署 Qt 桌面组件等第三方插件会更难。
第二种方式并不安全。每个人都可以打开文本编辑器并编辑您的 .qml 文件。
有没有更好的办法?
【问题讨论】:
标签:
deployment
qml
qtdeclarative
【解决方案1】:
使用资源系统:
将所有依赖项绑定到一个二进制文件中,因此根据代码中给出的路径将它们放置在确切的位置没有问题。
很多时候你不想分享你的 qml 代码/图像等[关闭源代码项目],在这些情况下很有帮助。而且它更安全,因为没有人可以修改您的文件并可能削弱您的应用程序。
您将无法在运行时修改这些依赖文件,在某些情况下可能需要这样做。
The first way maybe make the project difficult to manage if the number of qml files and your images become larger and larger.
与你所说的相反,我认为管理它们更容易,可能有多少文件。您可以看到here 使用 Qt Creator 是多么容易。
相对寻址:
所有依赖项都分散在不同的位置,因此根据代码中给出的路径将它们放置在确切位置的问题。
由于任何想要访问它们的人都可以直接访问您的文件,因此不安全。
如果在运行时需要对其中一个文件进行修改,您可以这样做。例如。拥有一个日志文件并向其中写入/读取一些数据。
当文件数量增加时(与第一种方法相比)难以管理,因为必须给出确切的路径。
我发现第二种方法的一个个人优势是在这样的情况下:
我需要将我的 Qt 演示应用程序发送给具有离岸经理的客户。这些演示会持续一整天。如果一些次要的 UI 功能(例如按钮的大小看起来非常小)受到过多的负面关注,我们可以引导经理调用相应的 qml 文件,并让他做一些小的更改(例如 scale : 1.5 )这是很有帮助,因为我们没有时间构建整个系统,将 exe 重新发送给他们等等。
有没有更好的方法?不是我见过。我认为这是找到上述哪一项更适合您的要求的问题。