我有一个继承自MaskGraphicsWidget.cpp
的类QGraphicsView
,它包含几个函数,构造函数是:
MaskGraphicsWidget::MaskGraphicsWidget(QTreeWidget * tree, QWidget* parent) : QGraphicsView(parent), m_tree_widget(tree){
setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
m_mask_scene = new QGraphicsScene;
m_mask_scene->setSceneRect(0, 0, 250, 250);
setScene(m_mask_scene);
primitive = 0;
minX = 0;
minY = 0;
}
我初始化场景m_mask_scene
并设置坐标系。
我还有一个函数MousePressEvent
:
http://pastebin.com/wjwDTQzw
我的MaskGraphicsWidget.h
就是这样:
QGraphicsScene* m_mask_scene;
QList<QPointF> m_polygon_points;
QList<QGraphicsLineItem*> m_polygon_lines;
int minX;
int minY;
我的问题是,我想设置QGraphicsPolygonItem poly
的Pos,但如果我将其设置为值min
和max
(我在其他地方计算),则该项目从当前Pos移至min
和max
的Pos。基本上它将项目的Pos设置在他自己的坐标系中。如何写我想在m_mask_scene
的坐标系中设置Pos?
对不起我的英文,如果您不明白,请随时添加评论!
编辑1:
m_polygon_points
和m_polygon_lines
填写在其他地方,并且正在运作。 (见pastebin
)
编辑2:添加了计划,请参阅下文,以便更好地(我希望)理解!
计划说明:黑色多边形是我得到的(我没有设置任何Pos),但是如果我将Pos设置为min
和max
,我会得到红色多边形。我想在min
和max
设置Pos并且仍然有黑色多边形!对不起我糟糕的油漆技巧
编辑3:当然,如果我打印QGraphicsPolygonItem poly
的Pos,则会显示(0,0)
。
编辑4:添加了一个不会使帖子重载的pastebin,我已将所有内容放入其中,请忽略PrimitiveItem
内容,以及case
0和1不适用于QGraphicsPolygonItem
。
编辑5:为了澄清,我在MousePressEvent
上抓住了这个事件: