QT主要提供三种图形界面:Widget,Graphics,QML
- Widget:适用于大量数据交互
- Graphics:适用于场景中很多图元的
- QML:解释型,属于轻量级界面,不适合大量数据交互,偏向视觉
这里提供的界面设计思想基于Graphics框架,采用SVG进行设计
这里参考了一款飞行的开源软件https://sourceforge.net/projects/qfi/
思路:
- 使用InKscape参考开源软件的仪表设计界面进行仪表零部件划设:背景、表盘、蒙版(基础使用方法参考:https://blog.csdn.net/uriel_chiang/article/details/80186267)
- 使用QT中的类QGraphicsSvgItem加载设计出来的仪表零部件,设置其位置、大小(QT 工程文件 +svg模块)(使用方法参考:https://blog.csdn.net/uriel_chiang/article/details/80186546)
- 使用QGraphicsScene放置所有Item,设置其层叠关系
- 使用QGraphicsView观看(显示)部分QGraphicsScene
- 动态移动、旋转表盘,动态生成QGraphicsTextItem文字显示数值
注意:
- 背景移动和蒙版如果需要移动效果的话,建议将其拆分为n个更小的零部件
- 背景移动和蒙版如果需要移动逐渐改变颜色效果,建议将一个零部件拆分为两个,一个颜色(不需要时隐藏),需要时,设定其倍数覆盖在另一个颜色之上