QGraphicsRectItem的几何形状
geometry of QGraphicsRectItem
本文关键字:几何形 QGraphicsRectItem 更新时间:2023-10-16
我在qgraphicsScene上绘制了一个qgraphicsRectItem。使用鼠标事件,它在场景中移动,调整大小和重新定位,即选择项目,鼠标按下并移动鼠标。如何获取 qgraphicsRectItem boundingRectingRect, pos wrt scene on mouseReleaseEvent? 场景中有一个图像,并且在场景中绘制了 qgraphicsRectItem 的边界矩形,然后我需要获取 qrect 以在边界矩形内裁剪该部分图像。
您必须使用以下mapRectToScene()
项:
it->mapRectToScene(it->boundingRect());
例:
#include <QApplication>
#include <QGraphicsRectItem>
#include <QGraphicsSceneMouseEvent>
#include <QGraphicsView>
#include <QDebug>
class GraphicsScene: public QGraphicsScene{
public:
using QGraphicsScene::QGraphicsScene;
protected:
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event){
print_items();
QGraphicsScene::mouseReleaseEvent(event);
}
void mouseMoveEvent(QGraphicsSceneMouseEvent *event){
print_items();
QGraphicsScene::mouseMoveEvent(event);
}
private:
void print_items(){
for(QGraphicsItem *it: items()){
qDebug()<< it->data(Qt::UserRole+1).toString()<< it->mapRectToScene(it->boundingRect());
}
}
};
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QGraphicsView w;
GraphicsScene scene(0, 0, 400, 400);
w.setScene(&scene);
QGraphicsRectItem *item = new QGraphicsRectItem(QRectF(-10, -10, 20, 20));
item->setData(Qt::UserRole+1, "item1");
item->setBrush(QBrush(Qt::green));
item->setFlags(QGraphicsItem::ItemIsMovable);
QGraphicsRectItem *item2 = new QGraphicsRectItem(QRectF(0, 0, 20, 20));
item2->setData(Qt::UserRole+1, "item2");
item2->setBrush(QBrush(Qt::blue));
item2->setFlags(QGraphicsItem::ItemIsMovable);
scene.addItem(item);
scene.addItem(item2);
w.show();
return a.exec();
}
相关文章:
- 用C++程序计算圆锥体的体积、球体的体积、八边形的面积和两点之间的距离
- 如何使用增强::几何计算多边形的旋转固体体积?
- 增强超几何测试
- 错误 - 自定义数据类型作为有效负载,带有提升::几何
- 使用提升几何缓冲区缩放多边形时的冗余折点
- 如何在Qt Designer UI文件中清除QMainWindow的几何标记
- 使用几何着色器的图层渲染似乎只输出图像数组的第一层
- QGraphicsRectItem的几何形状
- (如何)在提升几何中创建自己的多边形类型并与之一起使用multi_polygon类型?
- 优化mandelbrot分形
- 如果有一个几何设计着色器,则如何将信息从顶点着色器传递到碎片着色器
- 创建具有嵌套环的 L 形图案
- C++ - 处理几何插值中的浮点误差
- 订阅和发布来自Turtlesim的几何/扭曲消息
- 使用独立于包的几何对象
- 无法打印在在线编译器中打印完美的心形
- 提升几何:多边形定义
- 射影几何形状 - 使用特征元素在3D中找到平面
- 在钟形福音算法的工作中陌生
- 使用Boost ::几何多边形布尔/与线段属性的交叉点