#include "myscene.h" #include MyScene::MyScene(QObject *parent) : QGraphicsScene(parent) { } void MyScene::drawBackground(QPainter *painter, const QRectF &rect) { QGraphicsScene::drawBackground(painter, rect); // 设置画笔 QPen pen(gridColor); pen.setWidth(1); painter->setPen(pen); // 计算网格线 qreal left = int(rect.left()) - (int(rect.left()) % gridSize); qreal top = int(rect.top()) - (int(rect.top()) % gridSize); QVarLengthArray lines; for (qreal x = left; x < rect.right(); x += gridSize) { lines.append(QLineF(x, rect.top(), x, rect.bottom())); } for (qreal y = top; y < rect.bottom(); y += gridSize) { lines.append(QLineF(rect.left(), y, rect.right(), y)); } // 绘制网格 painter->drawLines(lines.data(), lines.size()); }