def __init__(self, parent=None):
super(MyScene, self).__init__(parent)
self.
pen = QPen(Qt.
black,
1, Qt.
SolidLine) self.
brush = QBrush(Qt.
gray, Qt.
SolidPattern) self.gridSize = SCREEN_GRID_SIZE
self.gridX = SCREEN_GRID_X
self.gridY = SCREEN_GRID_Y
self.setSceneRect(- self.gridSize * self.gridX / 2, - self.gridSize * self.gridY / 2, self.gridSize * self.gridX, self.gridSize * self.gridY)
def drawBackground(self, painter, rect):
# draw a rect in size of sceneRect
# draw frame
painter.
setPen(QPen(Qt.
red,
0, Qt.
NoPen)) painter.
setBrush(QBrush(Qt.
lightGray, Qt.
SolidPattern)) painter.drawRect(self.sceneRect())
# draw grid
painter.
setBrush(QBrush(Qt.
darkGray, Qt.
SolidPattern)) print self.sceneRect()
for y in range(int(self.sceneRect().y()), int(self.sceneRect().y())+int(self.sceneRect().height()+1), self.gridSize):
for x in range(int(self.sceneRect().x()), int(self.sceneRect().x())+int(self.sceneRect().width()+1), self.gridSize):
# change color for center point
if x == 0 and y == 0:
painter.save()
painter.
setBrush(QBrush(Qt.
red, Qt.
SolidPattern)) # draw a point
painter.drawRect(x-1, y-1, 2, 2)
# change color back if center point
if x == 0 and y == 0:
painter.restore()
class MyScene(QGraphicsScene):
def __init__(self, parent=None):
super(MyScene, self).__init__(parent)
self.pen = QPen(Qt.black, 1, Qt.SolidLine)
self.brush = QBrush(Qt.gray, Qt.SolidPattern)
self.gridSize = SCREEN_GRID_SIZE
self.gridX = SCREEN_GRID_X
self.gridY = SCREEN_GRID_Y
self.setSceneRect(- self.gridSize * self.gridX / 2, - self.gridSize * self.gridY / 2, self.gridSize * self.gridX, self.gridSize * self.gridY)
def drawBackground(self, painter, rect):
# draw a rect in size of sceneRect
# draw frame
painter.setPen(QPen(Qt.red, 0, Qt.NoPen))
painter.setBrush(QBrush(Qt.lightGray, Qt.SolidPattern))
painter.drawRect(self.sceneRect())
# draw grid
painter.setBrush(QBrush(Qt.darkGray, Qt.SolidPattern))
print self.sceneRect()
for y in range(int(self.sceneRect().y()), int(self.sceneRect().y())+int(self.sceneRect().height()+1), self.gridSize):
for x in range(int(self.sceneRect().x()), int(self.sceneRect().x())+int(self.sceneRect().width()+1), self.gridSize):
# change color for center point
if x == 0 and y == 0:
painter.save()
painter.setBrush(QBrush(Qt.red, Qt.SolidPattern))
# draw a point
painter.drawRect(x-1, y-1, 2, 2)
# change color back if center point
if x == 0 and y == 0:
painter.restore()
To copy to clipboard, switch view to plain text mode
Bookmarks