c++ 移动项目的矩形

kokeuurv  于 2023-01-18  发布在  其他
关注(0)|答案(1)|浏览(178)

有没有办法把一个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);
vyswwuz2

vyswwuz21#

只要使用QRect::translate。在您的特定情况下,它将类似于...

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

或者,如果您不想修改原始QRect ...

auto new_rect = item->rect.translated(-10, -10);

相关问题