QGraphicsItem器件移动及旋转相关问题

一、前言

Qt的图形视图框架中,可以使用如下接口设置图元坐标:

void QGraphicsItem::setPos(const QPointF &pos)

Sets the position of the item to pos, which is in parent coordinates. For items with no parent, pos is in scene coordinates.
The position of the item describes its origin (local coordinate (0, 0)) in parent coordinates.

官方注释:在父坐标系中根据坐标pos设置图元的位置。如果图元没有父图元,pos就是场景坐标系。


Qt的图形视图框架中,可以使用如下接口设置父子层级:

void QGraphicsItem::setParentItem(QGraphicsItem *newParent)

当然,也可以从构造函数中传递参数设置父子层级


二、器件旋转

Qt的图形视图框架中,可以使用如下接口设置图元旋转:

void setRotation(qreal angle);

在这里插入图片描述
器件旋转不会改变器件的场景坐标,例如:假如上图器件的scenePos为(64,128),则不管你旋转到那个位置,它的scenePos始终为(64,128)


三、场景

现在我有一个器件,需要显示器件ID,就像这样:

在这里插入图片描述
我使用了图元组合,使一个QGraphicsTextItem作为子图元,自定义图元LineElementItem作为父图元

如果使用setPos,图元LineElementItem应该是相对于场景坐标系进行移动,图元QGraphicsTextItem应该是相对于父图元LineElementItem的坐标系进行移动

我现在要旋转器件,要让器件ID始终保持在一个合适的位置,所以旋转完器件之后,需要进行ID位置校正

在这块卡了一下,反复测试发现,旋转完,父图元的坐标系也进行了旋转,如下图示:

在这里插入图片描述
注意:旋转之后,父坐标系的坐标原点不会变(始终是红色圈圈)

相关推荐

  1. 系统移植相关介绍

    2023-12-30 05:42:03       53 阅读
  2. Git使用相关问题

    2023-12-30 05:42:03       37 阅读
  3. mysql面试相关问题答案

    2023-12-30 05:42:03       50 阅读
  4. 数据结构传参相关问题

    2023-12-30 05:42:03       64 阅读
  5. Gateway相关问题答案(2024)

    2023-12-30 05:42:03       40 阅读
  6. Grafana相关问题答案(2024)

    2023-12-30 05:42:03       61 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-30 05:42:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-30 05:42:03       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-30 05:42:03       87 阅读
  4. Python语言-面向对象

    2023-12-30 05:42:03       96 阅读

热门阅读

  1. flutter是什么

    2023-12-30 05:42:03       62 阅读
  2. node.js对应npm安装和使用

    2023-12-30 05:42:03       56 阅读
  3. python将Excel的每一个sheet页生成PDF文件

    2023-12-30 05:42:03       56 阅读
  4. Centos7中KeepAlived&Nginx高可用

    2023-12-30 05:42:03       54 阅读
  5. js实现城市广场查询及渲染axios(需axios.min.js)

    2023-12-30 05:42:03       53 阅读
  6. 15. Mysql 变量的使用

    2023-12-30 05:42:03       64 阅读
  7. NGINX加载多个COF文件配置

    2023-12-30 05:42:03       55 阅读
  8. Linux Shell 009-数组

    2023-12-30 05:42:03       54 阅读