class ViewFrame(QtGui.QFrame): def __init__(self, parent): # Create the main frame of the window QtGui.QFrame.__init__(self, parent) self.setFrameShape(QtGui.QFrame.WinPanel) self.setFrameShadow(QtGui.QFrame.Sunken) self.setStyleSheet("QWidget { background-color: #222222 }") self.world = World() def keyPress(self, e): # Handle key pressing # Move eye key = e.key() if key == QtCore.Qt.Key_Up \ or key == QtCore.Qt.Key_Down \ or key == QtCore.Qt.Key_Left \ or key == QtCore.Qt.Key_Right \ or key == QtCore.Qt.Key_Q \ or key == QtCore.Qt.Key_W \ or key == QtCore.Qt.Key_E \ or key == QtCore.Qt.Key_A \ or key == QtCore.Qt.Key_S \ or key == QtCore.Qt.Key_D: self.world.moveEye(key) self.update() # Add or remove walls if key == QtCore.Qt.Key_Space or key == QtCore.Qt.Key_Backspace: self.world.editWall(key) def paintEvent(self, event): # Handle the paint event. All walls are drawn in the Wall class. painter = QtGui.QPainter(self) self.world.drawWalls(painter) painter.end() def loadFile(self, fname): # Passing on the file to the world class, and updating the frame when world is done loading. self.world.loadWalls(fname) self.update()