Qt 使用QML隐藏/显示SVG文件的一部分

Qt 使用QML隐藏/显示SVG文件的一部分,qt,svg,qml,Qt,Svg,Qml,我的设计师为我们的HMI概念提供了SVG文件,我们一直想知道如何优化这些图像的渲染。他希望避免产生大量看起来几乎相同的SVG文件 我们以这个Wi-Fi图标为例: 我们希望使用一个SVG文件来显示或隐藏每个条,而不是使用3个SVG文件来显示整个Wi-Fi接收范围。使用QML是否可能 从技术上讲,我们考虑修改XML代码并重新加载文件。从QML的角度看,这听起来可行吗 我们应该戴口罩吗 编辑:我刚刚找到了班级。由于我在C++中从我的模型中获取Wi-Fi功率值,我可能会利用我的后端修改SVG文件的XM

我的设计师为我们的HMI概念提供了
SVG
文件,我们一直想知道如何优化这些图像的渲染。他希望避免产生大量看起来几乎相同的
SVG
文件

我们以这个Wi-Fi图标为例:

我们希望使用一个
SVG
文件来显示或隐藏每个条,而不是使用3个
SVG
文件来显示整个Wi-Fi接收范围。使用
QML
是否可能

从技术上讲,我们考虑修改
XML
代码并重新加载文件。从
QML
的角度看,这听起来可行吗

我们应该戴口罩吗

编辑:我刚刚找到了班级。由于我在
C++
中从我的模型中获取Wi-Fi功率值,我可能会利用我的后端修改
SVG
文件的
XML
内容并重新加载它?

也许你可以使用Qt图形效果我同意dtech的命令

还要注意的是,在Qt表现最好的地方,SVG的渲染并不是最好的。如果你不需要成千上万的尺寸,考虑不使用基于矢量的图形格式。 如果您希望将所有内容都放在一个文件中,您可以尝试调整或从一个包含所有变体的图像中选择正确的“帧”


我目前还不能尝试,但Sprite可能也能处理SVG。

问得好。如果条形图有一个更简单的图案,比如矩形,那就很容易了,但是有了这样的曲线……我想说,你正在陷入过早的优化之中。在匆忙添加复杂性以解决问题之前,您是否已经确定您有问题?目前的解决方案也能很好地解决这个问题。正如我所说的,这更像是一个人的问题,因为我们的HMI可能会收到许多更新,而我们只有一个设计师来处理所有这些更改。在图形设计方面解决这个问题要容易得多。该图标由3个元素组成,设计师可以从中导出3个图像,逐渐显示完整的图标。然后,每种情况都有一个具体的图标,这比在每个图标的基础上加入额外的编程逻辑来进行额外的欺骗要简单得多。