如何移动项目的 QRect

问题描述 投票:0回答:1

有什么方法可以将 QRect 对象从当前位置移动吗?

有很多函数(

moveTo
moveLeft
、...),但它们都将对象从 (0,0) 移动,而不是从当前位置移动。

如果我需要将对象从当前位置沿 X 方向移动 5,可用的方法首先将其移动到 (0,0),然后移动到 (5,0);

但是我需要将其从实际位置移开。

int x_pos = item->rect.x();
int y_pos = item->rect.y();
x_pos -= 10;
y_pos -= 10;

item->rect.moveTo(x_pos, y_pos);
item->rect.setX(x_pos);
item->rect.setY(y_pos);
c++ qt position qrect
1个回答
1
投票

只需使用

QRect::translate
。在你的具体情况下,这会是这样的......

item->rect.translate(-10, -10);

或者,如果您想保留原始的

QRect
不修改...

auto new_rect = item->rect.translated(-10, -10);
© www.soinside.com 2019 - 2024. All rights reserved.