You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Qt Studio中为图片内部添加自定义动画效果

工业设备示意图

Qt Design Studio 实现设备动效操作步骤

1. 前期准备

  • 将上述设备图导入项目后作为底层背景,设置z值为0固定,避免被其他元素遮挡
  • 对照图中管路、储罐的位置,分别在对应点位叠加自定义QML元素:箭头可以用Shape组件绘制或者导入现成的箭头切图,储罐单独做两层,一层是透明的储罐轮廓上层,一层是纯色填充的液位下层,填充层z值要介于背景和储罐轮廓之间。

2. 箭头流动动效实现

两种常用实现方案按需选择:

  • 路径移动效果:如果要实现单个/多个箭头沿着管路轨迹循环移动,使用PathAnimation组件即可,设置循环次数为无限循环就能实现持续流动效果,核心代码参考:
PathAnimation {
    id: pipeArrowAnim
    target: flowArrow // 你定义的箭头元素id
    path: Path {
        // 按照图里的管路实际坐标写路径点位即可
        PathLine { x: 180; y: 120 }
        PathLine { x: 180; y: 270 }
        PathLine { x: 320; y: 270 }
    }
    duration: 2500 // 单次流动的时长,单位毫秒
    loops: Animation.Infinite // 无限循环
}
  • 频闪流动效果:如果是模拟断续的箭头流动感,在管路上按间隔排列多个小箭头,给每个箭头的opacity属性绑定顺序变化的PropertyAnimation,就能模拟出流动效果。

3. 储罐填充/排空动效实现

核心是控制液位填充层的高度属性:

  • 首先给储罐液位填充层设置clip: true,初始高度可设为0对应排空状态
  • 用NumberAnimation控制填充层的height属性,数值从0到储罐轮廓高度就是填充效果,从储罐轮廓高度到0就是排空效果,需要触发动效时调用动画的start()方法即可,核心代码参考:
NumberAnimation {
    id: tankFill
    target: tankLevelLayer // 你定义的储罐填充层id
    property: "height"
    from: 0
    to: tankBg.height // 储罐轮廓元素的高度
    duration: 4000 // 填充总时长
}
  • 如果需要更真实的液位效果,可以额外加一个小幅度的NumberAnimation控制填充层y坐标微幅晃动,模拟液位波动。

内容的提问来源于stack exchange,提问作者Karan Sanghavi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 19:12:01