我有自己的QGraphicsScene和两个QGraphicView。在QGraphicsScene中我使用
drawForeground(QPainter *painter, const QRectF &rect)
绘制网格的功能。现在我希望网格只在第一个中可见,而不是在第二个视图中......这可能吗?
答案 0 :(得分:1)
QGraphicsView是一个进入世界的窗口(QGraphicsScene)。当你看到我的窗户外面时,你问的问题就是说下雨了,但是当我透过其中一个看时,我只能下雨吗?!
但是,您可以更改窗帘(!),因此覆盖QGraphicsView的功能,而不是QGraphicsScene。我建议用这个: -
QGraphicsView::drawForeground(QPainter *, const QRectF &);
将此应用仅应用于您要更改的视图。使用两个视图,您需要一个标志来设置要将其应用于哪个视图。例如: -
void MyGraphicsView::drawForeground(QPainter* painter, const QRectF& rect)
{
QGrahicsView::drawForeground(painter, rect);
if(m_bDrawGrid)
DrawGrid();
}