Exemple #1
0
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()