def create_model(engine): engine.clear_model() engine.add(Car([0,0], superbdim, kmh2ms(0))) engine.add(Car([5,0], superbdim, kmh2ms(20), steering=-30)) # engine.add(Car([0,-2], superbdim, kmh2ms(20))) # engine.add(Car([0,2], superbdim)) engine.summary()
def __init__(self): super(MainWindow, self).__init__() self.currentPath = '' # The car's model, shared between the different views self.car = Car() # Socket (to connect with the car/Rpi) self.carSocket = CarSocket(self.car) # Setting the views self.automaticView = AutoView(self.car) self.manualView = ManualView(self.car) # File menu fileMenu = QMenu("&File", self) openAction = fileMenu.addAction("&Open...") openAction.setShortcut("Ctrl+O") saveAction = fileMenu.addAction("&Save...") saveAction.setShortcut("Ctrl+S") setScale = fileMenu.addAction("Set map's scale") setAngle = fileMenu.addAction("Set map's orientation") quitAction = fileMenu.addAction("E&xit") quitAction.setShortcut("Ctrl+Q") openAction.triggered.connect(self.openFile) saveAction.triggered.connect(self.saveMap) setScale.triggered.connect(self.setScale) setAngle.triggered.connect(self.setAngle) quitAction.triggered.connect(qApp.quit) self.menuBar().addMenu(fileMenu) # View menu viewMenu = QMenu("&View", self) self.backgroundAction = viewMenu.addAction("&Background") self.backgroundAction.setEnabled(True) self.backgroundAction.setCheckable(True) self.backgroundAction.setChecked(True) self.backgroundAction.toggled.connect(self.automaticView.setViewBackground) self.menuBar().addMenu(viewMenu) # Mode switching (automatic-manual) menu modeMenu = QMenu("&Mode", self) manualAction = modeMenu.addAction("M&anual") manualAction.setShortcut("Ctrl+M") manualAction.triggered.connect(self.manualMode) automaticAction = modeMenu.addAction("A&utomatic") automaticAction.setShortcut("Ctrl+A") automaticAction.triggered.connect(self.automaticMode) self.menuBar().addMenu(modeMenu) # Stacked widget (containing the auto. and manual view) self.stackedWidget = QStackedWidget() self.stackedWidget.addWidget(self.automaticView) self.stackedWidget.addWidget(self.manualView) self.setCentralWidget(self.stackedWidget) self.setMinimumSize(800, 600) # Configuration dialog loader = QUiLoader() file = QFile("config.ui") file.open(QFile.ReadOnly) self.config = loader.load(file) file.close() self.config.connectButton.clicked.connect(self.connectCar) self.config.buttonBox.accepted.connect(self.acceptConfig) self.config.buttonBox.rejected.connect(self.config.reject) self.config.buttonBox.button(QDialogButtonBox.RestoreDefaults).clicked.connect(self.resetConfig) self.config.resetParticles.clicked.connect(self.resetParticles) # Log dialog file = QFile("log.ui") file.open(QFile.ReadOnly) self.log = loader.load(file) file.close() self.log.saveButton.clicked.connect(self.saveLog) self.connect(self.carSocket, SIGNAL("logSignal(str, str)"), self, SLOT("addToLog(str, str)")) self.initLog() # Configuration button self.configButton = QPushButton("Configuration panel", parent=self.automaticView) self.configButton.clicked.connect(self.openConfigPanel) # Configuration button self.logButton = QPushButton("Car's log", parent=self.automaticView) self.logButton.clicked.connect(self.log.show)