我試圖在QGraphicsView::drawBackground
上正確顯示網格模式。似乎一切正常,直到我嘗試移動添加到場景的項目。QGraphicsView中的毛刺網格:: drawBackground
我添加一行在主窗口是這樣的:
GraphicsView的QPen _Pen;
_Pen.setColor(Qt::red);
_Pen.setWidth(3);
QGraphicsLineItem* _Line=new QGraphicsLineItem(0,0,100,100);
_Line->setPen(_Pen);
_Line->setVisible(true);
_Line->setFlags(QGraphicsLineItem::ItemIsSelectable | QGraphicsLineItem::ItemIsMovable);
m_scene->addItem(_Line);
方法:
GraphicsView::GraphicsView() : cellSize(20)
{
setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);
}
void GraphicsView::drawBackground(QPainter *p, const QRectF &crect)
{
p->save();
p->setPen(QPen(Qt::black,1));
for (int x = crect.topLeft().x(); x < crect.bottomRight().x(); x += cellSize)
for (int y = crect.topLeft().y(); y < crect.bottomRight().y(); y += cellSize)
p->drawPoint(x, y);
p->restore();
}
的問題可以在這裏看到:
當我移動該項目,它留下了一個網格點後面,這是不與原始網格對齊。
我不明白這個錯誤來自哪裏。我做錯了什麼?