def __init__(self, model, controller): QWidget.__init__(self) self.controller = controller self.model = model # load QtDesigner UI self.ui = Ui_mainWindow() self.ui.setupUi(self) #### SETUP CircuitDiagramView and controller self.ui.circuitDiagram.model = self.model self.ui.circuitDiagram.controller = self.controller # connect to CircuitDiagramView mouse triggers self.ui.circuitDiagram.mousePress.connect( self.controller.circuitDiagramMousePress) self.ui.circuitDiagram.mouseMove.connect( self.controller.circuitDiagramMouseMove) self.ui.circuitDiagram.mouseRelease.connect( self.controller.circuitDiagramMouseRelease) #### SETUP TOOLBAR self.ui.wireMode.clicked.connect(self.setWireMode) self.ui.deleteMode.clicked.connect(self.setDeleteMode) self.ui.selectMode.clicked.connect(self.setSelectMode) self.ui.runMode.clicked.connect(self.setRunMode) self.ui.buildMode.clicked.connect(self.setBuildMode) self.toolbarComponents = [] self.ui.newBattery.componentType = ComponentType.Battery self.toolbarComponents.append(self.ui.newBattery) self.ui.newBulb.componentType = ComponentType.Bulb self.toolbarComponents.append(self.ui.newBulb) self.ui.newResistor.componentType = ComponentType.Resistor self.toolbarComponents.append(self.ui.newResistor) self.ui.newSwitch.componentType = ComponentType.Switch self.toolbarComponents.append(self.ui.newSwitch) self.ui.newButton.componentType = ComponentType.Button self.toolbarComponents.append(self.ui.newButton) self.ui.newAmmeter.componentType = ComponentType.Ammeter self.toolbarComponents.append(self.ui.newAmmeter) self.ui.newVoltmeter.componentType = ComponentType.Voltmeter self.toolbarComponents.append(self.ui.newVoltmeter) for toolbarButton in self.toolbarComponents: toolbarButton.setIcon( QIcon( QPixmap( self.ui.circuitDiagram.componentTypeToImageName( toolbarButton.componentType)))) toolbarButton.setIconSize(QSize(50, 50)) toolbarButton.mousePress.connect( self.controller.newComponentButtonMousePress) self.statusBar().showMessage('Ready') self.ui.actionNew.setShortcut('Ctrl+N') self.ui.actionNew.setStatusTip('New document') self.ui.actionOpen.triggered.connect(self.showFileDialog) self.ui.actionSave.triggered.connect(self.showSaveDialog) self.ui.actionSaveAs.triggered.connect(self.saveAs) self.ui.actionNew.triggered.connect(self.newFile) self.ui.actionSave.setShortcut('Ctrl+S') self.ui.actionSaveAs.setShortcut('Ctrl+Shift+S') self.ui.actionOpen.setShortcut('Ctrl+O') self.ui.actionNew.setShortcut('Ctrl+N') self.savePath = None