class MainWindow(QMainWindow, svLumpedGui3A.Ui_MainWindow): def __init__( self, SettingDialog, parent=None, ): super(MainWindow, self).__init__(parent) self.setupUi(self) self.Resistor.clicked.connect(self.addResistorButton) self.Capacitor.clicked.connect(self.addCapacitorButton) self.Inductor.clicked.connect(self.addInductorButton) self.Diode.clicked.connect(self.addDiodeButton) self.DCVoltageSource.clicked.connect(self.addVoltageButton) self.DeleteWire.clicked.connect(self.deleteWire) self.CircuitView.setScene(QtGui.QGraphicsScene(self)) self.BoundaryFace.clicked.connect(self.addBoundaryFaceButton) self.Ground.clicked.connect(self.addGroundButton) self.Export.clicked.connect(self.exportXML) self.scene = self.CircuitView.scene() def mousePressEvent(self, event): global wireCount if event.buttons() == QtCore.Qt.MidButton: self.start = event.pos() self.start = self.mapToGlobal(event.pos()) self.start = self.CircuitView.mapFromGlobal(self.start) self.start = self.CircuitView.mapToScene(self.start) self.clickX = self.start.x() self.clickY = self.start.y() self.selectedItem = self.scene.itemAt(self.start) self.itemX = self.selectedItem.geometry().x() self.itemY = self.selectedItem.geometry().y() self.spock = self.selectedItem.widget() if (self.clickY > (self.itemY + 88)) & self.spock.isChecked(): self.start = QtCore.QPointF(self.itemX - 49, self.itemY + 176) elif (self.clickY < (self.itemY + 88)) & self.spock.isChecked(): self.start = QtCore.QPointF(self.itemX - 49, self.itemY) elif self.clickX < (self.itemX + 88): self.start = QtCore.QPointF(self.itemX, self.itemY + 49) elif self.clickX > (self.itemX + 88): self.start = QtCore.QPointF(self.itemX + 176, self.itemY + 49) if event.buttons() == QtCore.Qt.RightButton: self.end = event.pos() self.end = self.mapToGlobal(event.pos()) self.end = self.CircuitView.mapFromGlobal(self.end) self.end = self.CircuitView.mapToScene(self.end) self.clickX = self.end.x() self.clickY = self.end.y() self.selectedItem = self.scene.itemAt(self.end) self.itemX = self.selectedItem.geometry().x() self.itemY = self.selectedItem.geometry().y() self.spock = self.selectedItem.widget() if self.spock.isFlat() == False: self.end = QtCore.QPointF(self.itemX + 88, self.itemY) elif (self.clickY > (self.itemY + 88)) & self.spock.isChecked(): self.end = QtCore.QPointF(self.itemX - 49, self.itemY + 176) elif (self.clickY < (self.itemY + 88)) & self.spock.isChecked(): self.end = QtCore.QPointF(self.itemX - 49, self.itemY) elif self.clickX < (self.itemX + 88): self.end = QtCore.QPointF(self.itemX, self.itemY + 49) elif self.clickX > (self.itemX + 88): self.end = QtCore.QPointF(self.itemX + 176, self.itemY + 49) self.wire = QtGui.QGraphicsLineItem(QtCore.QLineF( self.start, self.end)) self.scene.addItem(self.wire) if self.start == self.end: self.scene.removeItem(self.wire) else: wireCount = wireCount + 1 self.wire.setZValue(1) def deleteWire(self): self.scene.removeItem(self.wire) def exportXML(self): root = minidom.Document() xml = root.createElement('root') root.appendChild(xml) wireChild = root.createElement('wire') xml.appendChild(wireChild) xmlStr = root.toprettyxml(indent='\t') savePathFile = 'test.xml' with open(savePathFile, 'w') as f: f.write(xmlStr) global wireCount, componentCount allComponents = self.scene.items() totalComponents = wireCount + componentCount for QtGui.QGraphicsLineItem in allComponents[0:wireCount]: WirePos = QtGui.QGraphicsLineItem.line() print WirePos for QtGui.QGraphicsProxyWidget in allComponents[ wireCount:totalComponents]: ComponentWidget = QtGui.QGraphicsProxyWidget.widget() if ComponentWidget.isFlat() == False: node1 = ((QtGui.QGraphicsProxyWidget.pos().x() + 88), (QtGui.QGraphicsProxyWidget.pos().y())) node2 = '' elif ComponentWidget.isChecked(): node1 = ((QtGui.QGraphicsProxyWidget.pos().x() - 49), (QtGui.QGraphicsProxyWidget.pos().y())) node2 = ((QtGui.QGraphicsProxyWidget.pos().x() - 49), (QtGui.QGraphicsProxyWidget.pos().y() + 176)) else: node1 = (QtGui.QGraphicsProxyWidget.pos().x(), (QtGui.QGraphicsProxyWidget.pos().y() + 49)) node2 = ((QtGui.QGraphicsProxyWidget.pos().x() + 176), (QtGui.QGraphicsProxyWidget.pos().y() + 49)) print ComponentWidget.componentType, ComponentWidget.name, ComponentWidget.value, ComponentWidget.unit, node1, node2 def addResistorButton(self): global componentCount self.Resistor2 = DragButton('') ## self.Resistor2.setGeometry(QtCore.QRect(40, 30, 131, 61)) self.Resistor2.setCursor(QtGui.QCursor(QtCore.Qt.ClosedHandCursor)) self.Resistor2.setAcceptDrops(False) self.Resistor2.setText(_fromUtf8("")) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(_fromUtf8("Resistor.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.Resistor2.setIcon(icon) self.Resistor2.setIconSize(QtCore.QSize(130, 70)) self.Resistor2.setObjectName(_fromUtf8("Resistor")) self.Resistor2.setFlat(True) self.Resistor2.setCheckable(True) self.Resistor2.clicked.connect(self.handlebutton) self.Resistor2.componentType = 'Resistor' self.sceneResistor = self.scene.addWidget(self.Resistor2) componentCount = componentCount + 1 def addCapacitorButton(self): global componentCount self.Capacitor2 = DragButton('') ## self.Capacitor2.setGeometry(QtCore.QRect(80, 120, 51, 51)) self.Capacitor2.setCursor(QtGui.QCursor(QtCore.Qt.ClosedHandCursor)) self.Capacitor2.setAcceptDrops(False) self.Capacitor2.setText(_fromUtf8("")) icon1 = QtGui.QIcon() icon1.addPixmap(QtGui.QPixmap(_fromUtf8("capacitor.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.Capacitor2.setIcon(icon1) self.Capacitor2.setIconSize(QtCore.QSize(130, 70)) self.Capacitor2.setFlat(True) self.Capacitor2.setObjectName(_fromUtf8("Capacitor")) self.Capacitor2.setCheckable(True) self.Capacitor2.setChecked(False) self.Capacitor2.clicked.connect(self.handlebutton) self.Capacitor2.componentType = 'Capacitor' self.sceneCapacitor = self.scene.addWidget(self.Capacitor2) componentCount = componentCount + 1 def addInductorButton(self): global componentCount self.Inductor2 = DragButton('') ## self.Inductor2.setGeometry(QtCore.QRect(40, 280, 141, 51)) self.Inductor2.setCursor(QtGui.QCursor(QtCore.Qt.ClosedHandCursor)) self.Inductor2.setAcceptDrops(False) self.Inductor2.setText(_fromUtf8("")) icon3 = QtGui.QIcon() icon3.addPixmap(QtGui.QPixmap(_fromUtf8("Inductor.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.Inductor2.setIcon(icon3) self.Inductor2.setIconSize(QtCore.QSize(130, 70)) self.Inductor2.setFlat(True) self.Inductor2.setCheckable(True) self.Inductor2.setObjectName(_fromUtf8("Inductor")) self.Inductor2.clicked.connect(self.handlebutton) self.Inductor2.componentType = 'Inductor' self.scene.addWidget(self.Inductor2) componentCount = componentCount + 1 def addDiodeButton(self): global componentCount self.Diode2 = DragButton('') ## self.Diode2.setGeometry(QtCore.QRect(50, 190, 111, 71)) self.Diode2.setCursor(QtGui.QCursor(QtCore.Qt.ClosedHandCursor)) self.Diode2.setAcceptDrops(False) self.Diode2.setText(_fromUtf8("")) icon2 = QtGui.QIcon() icon2.addPixmap(QtGui.QPixmap(_fromUtf8("Diode.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.Diode2.setIcon(icon2) self.Diode2.setIconSize(QtCore.QSize(130, 70)) self.Diode2.setFlat(True) self.Diode2.setObjectName(_fromUtf8("Diode")) self.Diode2.clicked.connect(self.handlebutton) self.Diode2.setCheckable(True) self.Diode2.componentType = 'Diode' self.scene.addWidget(self.Diode2) componentCount = componentCount + 1 def addVoltageButton(self): global componentCount self.DCVoltageSource2 = DragButton('') self.DCVoltageSource2.setCursor( QtGui.QCursor(QtCore.Qt.ClosedHandCursor)) self.DCVoltageSource2.setAcceptDrops(False) self.DCVoltageSource2.setText(_fromUtf8("")) icon4 = QtGui.QIcon() icon4.addPixmap(QtGui.QPixmap(_fromUtf8("DCVoltageSource.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.DCVoltageSource2.setIcon(icon4) self.DCVoltageSource2.setIconSize(QtCore.QSize(139, 70)) self.DCVoltageSource2.setFlat(True) self.DCVoltageSource2.setObjectName(_fromUtf8("DC Voltage Source")) self.DCVoltageSource2.clicked.connect(self.handlebutton) self.DCVoltageSource2.setCheckable(True) self.DCVoltageSource2.componentType = 'DC Voltage Source' self.scene.addWidget(self.DCVoltageSource2) componentCount = componentCount + 1 def addBoundaryFaceButton(self): global componentCount self.BoundaryFace2 = DragButton('') self.BoundaryFace2.setCursor(QtGui.QCursor(QtCore.Qt.ClosedHandCursor)) self.BoundaryFace2.setAcceptDrops(False) self.BoundaryFace2.setText(_fromUtf8("")) icon4 = QtGui.QIcon() icon4.addPixmap(QtGui.QPixmap(_fromUtf8("BoundaryFace.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.BoundaryFace2.setIcon(icon4) self.BoundaryFace2.setIconSize(QtCore.QSize(139, 70)) self.BoundaryFace2.setFlat(True) self.BoundaryFace2.setObjectName(_fromUtf8("Boundary Face")) self.BoundaryFace2.clicked.connect(self.handlebutton) self.BoundaryFace2.componentType = 'Boundary Face' self.scene.addWidget(self.BoundaryFace2) componentCount = componentCount + 1 def addGroundButton(self): global ground, componentCount self.Ground2 = DragButton('') self.Ground2.setCursor(QtGui.QCursor(QtCore.Qt.ClosedHandCursor)) self.Ground2.setAcceptDrops(False) self.Ground2.setText(_fromUtf8("")) icon4 = QtGui.QIcon() icon4.addPixmap(QtGui.QPixmap(_fromUtf8("Ground.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.Ground2.setIcon(icon4) self.Ground2.setIconSize(QtCore.QSize(139, 70)) self.Ground2.setFlat(False) self.Ground2.setObjectName(_fromUtf8("Ground")) self.Ground2.componentType = 'Ground' self.scene.addWidget(self.Ground2) componentCount = componentCount + 1 def handlebutton(self): if QtGui.qApp.keyboardModifiers() & QtCore.Qt.ShiftModifier: self.widgetSet = self.sender() self.Settings = SettingDialog(self) Type = self.widgetSet.componentType self.Settings.Type.setText(Type) self.Settings.exec_() self.widgetSet.name = self.Settings.Name.text() self.widgetSet.value = self.Settings.Value.value() self.widgetSet.unit = self.Settings.Unit.currentText() self.Settings.Name.clear() self.Settings.Value.setValue(0) self.Settings.Unit.setCurrentIndex(0) if QtGui.qApp.keyboardModifiers() & QtCore.Qt.AltModifier: self.transform = QtGui.QTransform() self.transform.rotate(90) self.selectedItem.setTransform(self.transform) self.spock.setChecked(True) if QtGui.qApp.keyboardModifiers() & QtCore.Qt.ControlModifier: self.scene.removeItem(self.selectedItem)
class MainWindow(QMainWindow, svLumpedGui3A.Ui_MainWindow): def __init__(self, parent=None,): super(MainWindow, self).__init__(parent) self.setupUi(self) self.Resistor.clicked.connect(self.addResistorButton) self.Capacitor.clicked.connect(self.addCapacitorButton) self.Inductor.clicked.connect(self.addInductorButton) self.Diode.clicked.connect(self.addDiodeButton) self.DCVoltageSource.clicked.connect(self.addVoltageButton) self.DeleteWire.clicked.connect(self.deleteWire) self.CircuitView.setScene(QtGui.QGraphicsScene(self)) self.scene = self.CircuitView.scene() def deleteWire(self): self.scene.removeItem(self.wire) def mousePressEvent(self, event): if event.buttons() == QtCore.Qt.MidButton: self.start = event.pos() self.start = self.mapToGlobal(event.pos()) self.start = self.CircuitView.mapFromGlobal(self.start) self.start = self.CircuitView.mapToScene(self.start) self.selectedItem = self.scene.itemAt(self.start) self.clickX = self.start.x() self.clickY = self.start.y() self.itemX = self.selectedItem.geometry().x() self.itemY = self.selectedItem.geometry().y() ## if (self.clickY < (self.itemY +98)) & rotated == True: ## self.start = QtCore.QPointF(self.itemX -49, self.itemY) ## global rotated ## rotated += False if self.clickY > (self.itemY +98): self.start = QtCore.QPointF(self.itemX - 49, self.itemY + 176) elif self.clickX < (self.itemX + 88): self.start = QtCore.QPointF(self.itemX, self.itemY + 49) else: self.start = QtCore.QPointF(self.itemX +176, self.itemY + 49) if event.buttons() == QtCore.Qt.RightButton: self.end = event.pos() self.end = self.mapToGlobal(event.pos()) self.end = self.CircuitView.mapFromGlobal(self.end) self.end = self.CircuitView.mapToScene(self.end) self.clickX = self.end.x() self.clickY = self.end.y() self.selectedItem = self.scene.itemAt(self.end) self.itemX = self.selectedItem.geometry().x() self.itemY = self.selectedItem.geometry().y() if self.clickY > (self.itemY +98): self.start = QtCore.QPointF(self.itemX - 49, self.itemY + 176) elif self.clickX < (self.itemX + 88): self.end = QtCore.QPointF(self.itemX, self.itemY + 49) else: self.end = QtCore.QPointF(self.itemX +176, self.itemY + 49) self.wire = QtGui.QGraphicsLineItem(QtCore.QLineF(self.start, self.end)) self.scene.addItem(self.wire) if self.start == self.end: self.scene.removeItem(self.wire) else: print self.start, self.end def addResistorButton(self,): self.Resistor2 = DragButton('') ## self.Resistor2.setGeometry(QtCore.QRect(40, 30, 131, 61)) self.Resistor2.setCursor(QtGui.QCursor(QtCore.Qt.ClosedHandCursor)) self.Resistor2.setAcceptDrops(False) self.Resistor2.setText(_fromUtf8("")) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(_fromUtf8("Resistor.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.Resistor2.setIcon(icon) self.Resistor2.setIconSize(QtCore.QSize(130, 70)) self.Resistor2.setObjectName(_fromUtf8("Resistor")) self.Resistor2.setFlat(True) self.Resistor2.clicked.connect(self.handlebutton) ## self.Resistor2.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) ## self.Resistor2.customContextMenuRequested.connect(self.handlebutton) self.scene_Resistor = self.scene.addWidget(self.Resistor2) def addCapacitorButton(self): self.Capacitor2 = DragButton('') ## self.Capacitor2.setGeometry(QtCore.QRect(80, 120, 51, 51)) self.Capacitor2.setCursor(QtGui.QCursor(QtCore.Qt.ClosedHandCursor)) self.Capacitor2.setAcceptDrops(False) self.Capacitor2.setText(_fromUtf8("")) icon1 = QtGui.QIcon() icon1.addPixmap(QtGui.QPixmap(_fromUtf8("capacitor.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.Capacitor2.setIcon(icon1) self.Capacitor2.setIconSize(QtCore.QSize(130, 70)) self.Capacitor2.setFlat(True) self.Capacitor2.setObjectName(_fromUtf8("Capacitor")) self.Capacitor2.setCheckable(True) self.Capacitor2.setChecked(False) self.Capacitor2.clicked.connect(self.handlebutton) self.scene_Capacitor = self.scene.addWidget(self.Capacitor2) def addInductorButton(self): self.Inductor2 = DragButton('') ## self.Inductor2.setGeometry(QtCore.QRect(40, 280, 141, 51)) self.Inductor2.setCursor(QtGui.QCursor(QtCore.Qt.ClosedHandCursor)) self.Inductor2.setAcceptDrops(False) self.Inductor2.setText(_fromUtf8("")) icon3 = QtGui.QIcon() icon3.addPixmap(QtGui.QPixmap(_fromUtf8("Inductor.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.Inductor2.setIcon(icon3) self.Inductor2.setIconSize(QtCore.QSize(130, 70)) self.Inductor2.setFlat(True) self.Inductor2.setObjectName(_fromUtf8("Inductor")) self.Inductor2.clicked.connect(self.handlebutton) self.scene.addWidget(self.Inductor2) def addDiodeButton(self): self.Diode2 = DragButton('') ## self.Diode2.setGeometry(QtCore.QRect(50, 190, 111, 71)) self.Diode2.setCursor(QtGui.QCursor(QtCore.Qt.ClosedHandCursor)) self.Diode2.setAcceptDrops(False) self.Diode2.setText(_fromUtf8("")) icon2 = QtGui.QIcon() icon2.addPixmap(QtGui.QPixmap(_fromUtf8("Diode.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.Diode2.setIcon(icon2) self.Diode2.setIconSize(QtCore.QSize(130, 70)) self.Diode2.setFlat(True) self.Diode2.setObjectName(_fromUtf8("Diode")) self.Diode2.clicked.connect(self.handlebutton) self.scene.addWidget(self.Diode2) def addVoltageButton(self): self.DCVoltageSource2 = DragButton('') self.DCVoltageSource2.setCursor(QtGui.QCursor(QtCore.Qt.ClosedHandCursor)) self.DCVoltageSource2.setAcceptDrops(False) self.DCVoltageSource2.setText(_fromUtf8("")) icon4 = QtGui.QIcon() icon4.addPixmap(QtGui.QPixmap(_fromUtf8("DCVoltageSource.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.DCVoltageSource2.setIcon(icon4) self.DCVoltageSource2.setIconSize(QtCore.QSize(139, 70)) self.DCVoltageSource2.setFlat(True) self.DCVoltageSource2.setObjectName(_fromUtf8("DCVoltageSource")) self.DCVoltageSource2.clicked.connect(self.handlebutton) self.scene.addWidget(self.DCVoltageSource2) def handlebutton(self): if QtGui.qApp.keyboardModifiers() & QtCore.Qt.ShiftModifier: form = SettingDialog(self) form.show() if QtGui.qApp.keyboardModifiers() & QtCore.Qt.AltModifier: transform = QtGui.QTransform() transform.rotate(90) self.selectedItem.setTransform(transform) if QtGui.qApp.keyboardModifiers() & QtCore.Qt.ControlModifier: self.scene.removeItem(self.selectedItem)
class MainWindow(QMainWindow, svLumpedGui2.Ui_MainWindow): def __init__( self, parent=None, ): super(MainWindow, self).__init__(parent) self.setupUi(self) self.Resistor.clicked.connect(self.addResistorButton) self.Capacitor.clicked.connect(self.addCapacitorButton) self.Inductor.clicked.connect(self.addInductorButton) self.Diode.clicked.connect(self.addDiodeButton) self.DCVoltageSource.clicked.connect(self.addVoltageButton) def mousePressEvent(self, event): self.__mousePressPos = None if event.button() == QtCore.Qt.RightButton: self.x1 = event.globalPos().x() self.y1 = event.globalPos().y() self.__mousePressPos = None if event.button() == QtCore.Qt.RightButton: QtGui.QPushButton.mousePressEvent = self.getPos2 def getPos2(self, event): self.x2 = event.globalPos().x() self.y2 = event.globalPos().y() print self.x1, self.y1, self.x2, self.y2 ## def paintEvent(self, e): ## ## qp = QtGui.QPainter() ## qp.begin(self) ## self.drawLines(qp) ## qp.end() ## ## def drawLines(self, qp): ## ## pen = QtGui.QPen(QtCore.Qt.black, 2, QtCore.Qt.SolidLine) ## ## qp.setPen(pen) ## qp.drawLine(self.x1, self.y1, self.x2, self.y2) def addResistorButton(self): self.Resistor2 = DragButton('', self) self.Resistor2.setGeometry(QtCore.QRect(40, 30, 131, 61)) self.Resistor2.setCursor(QtGui.QCursor(QtCore.Qt.ClosedHandCursor)) self.Resistor2.setAcceptDrops(False) self.Resistor2.setText(_fromUtf8("")) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(_fromUtf8("Resistor.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.Resistor2.setIcon(icon) self.Resistor2.setIconSize(QtCore.QSize(130, 67)) self.Resistor2.setFlat(True) self.Resistor2.setObjectName(_fromUtf8("Resistor")) self.Resistor2.setCheckable(True) self.Resistor2.setChecked(False) self.Resistor2.show() self.Resistor2.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) self.Resistor2.customContextMenuRequested.connect(self.handlebutton) def addCapacitorButton(self): self.Capacitor2 = DragButton('', self) self.Capacitor2.setGeometry(QtCore.QRect(80, 120, 51, 51)) self.Capacitor2.setCursor(QtGui.QCursor(QtCore.Qt.ClosedHandCursor)) self.Capacitor2.setAcceptDrops(False) self.Capacitor2.setText(_fromUtf8("")) icon1 = QtGui.QIcon() icon1.addPixmap(QtGui.QPixmap(_fromUtf8("capacitor.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.Capacitor2.setIcon(icon1) self.Capacitor2.setIconSize(QtCore.QSize(150, 60)) self.Capacitor2.setFlat(True) self.Capacitor2.setObjectName(_fromUtf8("Capacitor")) self.Capacitor2.setCheckable(True) self.Capacitor2.setChecked(False) self.Capacitor2.show() self.Capacitor2.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) self.Capacitor2.customContextMenuRequested.connect(self.handlebutton) def addInductorButton(self): self.Inductor2 = DragButton('', self) self.Inductor2.setGeometry(QtCore.QRect(40, 280, 141, 51)) self.Inductor2.setCursor(QtGui.QCursor(QtCore.Qt.ClosedHandCursor)) self.Inductor2.setAcceptDrops(False) self.Inductor2.setText(_fromUtf8("")) icon3 = QtGui.QIcon() icon3.addPixmap(QtGui.QPixmap(_fromUtf8("Inductor.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.Inductor2.setIcon(icon3) self.Inductor2.setIconSize(QtCore.QSize(135, 80)) self.Inductor2.setFlat(True) self.Inductor2.setObjectName(_fromUtf8("Inductor")) self.Inductor2.show() self.Inductor2.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) self.Inductor2.customContextMenuRequested.connect(self.handlebutton) def addDiodeButton(self): self.Diode2 = DragButton('', self) self.Diode2.setGeometry(QtCore.QRect(50, 190, 111, 71)) self.Diode2.setCursor(QtGui.QCursor(QtCore.Qt.ClosedHandCursor)) self.Diode2.setAcceptDrops(False) self.Diode2.setText(_fromUtf8("")) icon2 = QtGui.QIcon() icon2.addPixmap (QtGui.QPixmap(_fromUtf8("Diode.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.Diode2.setIcon(icon2) self.Diode2.setIconSize(QtCore.QSize(200, 67)) self.Diode2.setFlat(True) self.Diode2.setObjectName(_fromUtf8("Diode")) self.Diode2.show() self.Diode2.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) self.Diode2.customContextMenuRequested.connect(self.handlebutton) def addVoltageButton(self): self.DCVoltageSource2 = DragButton('', self) self.DCVoltageSource2.setGeometry(QtCore.QRect(70, 350, 71, 71)) self.DCVoltageSource2.setCursor( QtGui.QCursor(QtCore.Qt.ClosedHandCursor)) self.DCVoltageSource2.setAcceptDrops(False) self.DCVoltageSource2.setText(_fromUtf8("")) icon4 = QtGui.QIcon() icon4.addPixmap(QtGui.QPixmap(_fromUtf8("DCVoltageSource.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.DCVoltageSource2.setIcon(icon4) self.DCVoltageSource2.setIconSize(QtCore.QSize(100, 60)) self.DCVoltageSource2.setFlat(True) self.DCVoltageSource2.setObjectName(_fromUtf8("DCVoltageSource")) self.DCVoltageSource2.show() self.DCVoltageSource2.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) self.DCVoltageSource2.customContextMenuRequested.connect( self.handlebutton) def handlebutton(self): if QtGui.qApp.keyboardModifiers() & QtCore.Qt.ShiftModifier: form = SettingDialog(self) form.show()
class MainWindow(QMainWindow, svLumpedGui3A.Ui_MainWindow): def __init__( self, SettingDialog, parent=None, ): super(MainWindow, self).__init__(parent) self.setupUi(self) self.Resistor.clicked.connect(self.addResistorButton) self.Capacitor.clicked.connect(self.addCapacitorButton) self.Inductor.clicked.connect(self.addInductorButton) self.Diode.clicked.connect(self.addDiodeButton) self.DCVoltageSource.clicked.connect(self.addVoltageButton) self.DeleteWire.clicked.connect(self.deleteWire) self.CircuitView.setScene(QtGui.QGraphicsScene(self)) self.BoundaryFace.clicked.connect(self.addBoundaryFaceButton) self.Ground.clicked.connect(self.addGroundButton) self.Export.clicked.connect(self.exportXML) self.scene = self.CircuitView.scene() self.actionOpen.triggered.connect(self.openFile) self.actionSave.triggered.connect(self.exportXML) def mousePressEvent(self, event): global wireCount try: if event.buttons() == QtCore.Qt.MidButton: self.start = event.pos() self.start = self.mapToGlobal(event.pos()) self.start = self.CircuitView.mapFromGlobal(self.start) self.start = self.CircuitView.mapToScene(self.start) self.clickX = self.start.x() self.clickY = self.start.y() self.selectedItem = self.scene.itemAt(self.start) self.itemX = self.selectedItem.geometry().x() self.itemY = self.selectedItem.geometry().y() self.spock = self.selectedItem.widget() if (self.clickY > (self.itemY + 88)) & self.spock.isChecked(): self.start = QtCore.QPointF(self.itemX - 49, self.itemY + 176) elif (self.clickY < (self.itemY + 88)) & self.spock.isChecked(): self.start = QtCore.QPointF(self.itemX - 49, self.itemY) elif self.clickX < (self.itemX + 88): self.start = QtCore.QPointF(self.itemX, self.itemY + 49) elif self.clickX > (self.itemX + 88): self.start = QtCore.QPointF(self.itemX + 176, self.itemY + 49) if event.buttons() == QtCore.Qt.RightButton: self.end = event.pos() self.end = self.mapToGlobal(event.pos()) self.end = self.CircuitView.mapFromGlobal(self.end) self.end = self.CircuitView.mapToScene(self.end) self.clickX = self.end.x() self.clickY = self.end.y() self.selectedItem = self.scene.itemAt(self.end) self.itemX = self.selectedItem.geometry().x() self.itemY = self.selectedItem.geometry().y() self.spock = self.selectedItem.widget() if self.spock.isFlat() == False: self.end = QtCore.QPointF(self.itemX + 88, self.itemY) elif (self.clickY > (self.itemY + 88)) & self.spock.isChecked(): self.end = QtCore.QPointF(self.itemX - 49, self.itemY + 176) elif (self.clickY < (self.itemY + 88)) & self.spock.isChecked(): self.end = QtCore.QPointF(self.itemX - 49, self.itemY) elif self.clickX < (self.itemX + 88): self.end = QtCore.QPointF(self.itemX, self.itemY + 49) elif self.clickX > (self.itemX + 88): self.end = QtCore.QPointF(self.itemX + 176, self.itemY + 49) self.wire = QtGui.QGraphicsLineItem( QtCore.QLineF(self.start, self.end)) self.scene.addItem(self.wire) if self.start == self.end: self.scene.removeItem(self.wire) else: wireCount = wireCount + 1 self.wire.setZValue(1) except Exception as err: self.statusbar.showMessage("Error: Component Not Pressed!") def deleteWire(self): global wireCount if wireCount > 0: deleteWire = self.scene.items()[0] self.scene.removeItem(deleteWire) wireCount = wireCount - 1 else: self.statusbar.showMessage("Error: No Wires Exist (yet!)") def exportXML(self): global wireCount, componentCount allComponents = self.scene.items() totalComponents = wireCount + componentCount root = minidom.Document() xml = root.createElement('circuit') root.appendChild(xml) if componentCount != 0 and wireCount != 0: for QtGui.QGraphicsProxyWidget in allComponents[ wireCount:totalComponents]: ComponentWidget = QtGui.QGraphicsProxyWidget.widget() if ComponentWidget.isFlat() == False: node1 = ((QtGui.QGraphicsProxyWidget.pos().x() + 88), (QtGui.QGraphicsProxyWidget.pos().y())) node2 = '' elif ComponentWidget.isChecked(): node1 = ((QtGui.QGraphicsProxyWidget.pos().x() - 49), (QtGui.QGraphicsProxyWidget.pos().y())) node2 = ((QtGui.QGraphicsProxyWidget.pos().x() - 49), (QtGui.QGraphicsProxyWidget.pos().y() + 176)) else: node1 = (QtGui.QGraphicsProxyWidget.pos().x(), (QtGui.QGraphicsProxyWidget.pos().y() + 49)) node2 = ((QtGui.QGraphicsProxyWidget.pos().x() + 176), (QtGui.QGraphicsProxyWidget.pos().y() + 49)) xmlcomponents = root.createElement('Component') xmlcomponents.setAttribute('type', ComponentWidget.componentType) xmlcomponents.setAttribute('value', str(ComponentWidget.value)) xmlcomponents.setAttribute('metricPrefix', str(ComponentWidget.unit)) xmlcomponents.setAttribute('name', str(ComponentWidget.name)) xmlcomponents.setAttribute('rotated', str(ComponentWidget.rotated)) xml.appendChild(xmlcomponents) componentNode1 = root.createElement("Node") componentNode1.appendChild(root.createTextNode(str(node1))) xmlcomponents.appendChild(componentNode1) componentNode2 = root.createElement("Node") componentNode2.appendChild(root.createTextNode(str(node2))) xmlcomponents.appendChild(componentNode2) for QtGui.QGraphicsLineItem in allComponents[0:wireCount]: WirePos = QtGui.QGraphicsLineItem.line() WirePos = str(WirePos) stringLength = len(WirePos) - 1 wire = WirePos[20:stringLength] xmlwire = root.createElement('wire') xml.appendChild(xmlwire) wirePos = root.createElement('wirePos') wirePos.appendChild(root.createTextNode(wire)) xmlwire.appendChild(wirePos) xmlStr = root.toprettyxml(indent='\t') savePathFile = 'test.xml' with open(savePathFile, 'w') as f: f.write(xmlStr) self.statusbar.showMessage("Circuit Exported to XML File") elif componentCount == 0: self.statusbar.showMessage("Error: No Components Added!") elif wireCount == 0: self.statusbar.showMessage("Error: No Wires Added!") def openFile(self): name = str(QtGui.QFileDialog.getOpenFileName()) nameSplit = name.split("/") or name.split("\\") nameSplitNumber = (len(nameSplit) - 1) xmlFile = nameSplit[nameSplitNumber] xmlLoad = ET.parse(xmlFile) circuit = xmlLoad.getroot() for components in circuit.findall("Component"): Type = components.get("type") Node = components.find("Node").text print Type, Node for wires in circuit.findall("wire"): wirePos = wires.find("wirePos").text print wirePos def addResistorButton(self): global componentCount self.Resistor2 = DragButton('') ## self.Resistor2.setGeometry(QtCore.QRect(40, 30, 131, 61)) self.Resistor2.setCursor(QtGui.QCursor(QtCore.Qt.ClosedHandCursor)) self.Resistor2.setAcceptDrops(False) self.Resistor2.setText(_fromUtf8("")) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(_fromUtf8("Resistor.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.Resistor2.setIcon(icon) self.Resistor2.setIconSize(QtCore.QSize(130, 70)) self.Resistor2.setObjectName(_fromUtf8("Resistor")) self.Resistor2.setFlat(True) self.Resistor2.setCheckable(True) self.Resistor2.clicked.connect(self.handlebutton) self.Resistor2.componentType = 'Resistor' self.sceneResistor = self.scene.addWidget(self.Resistor2) componentCount = componentCount + 1 def addCapacitorButton(self): global componentCount self.Capacitor2 = DragButton('') ## self.Capacitor2.setGeometry(QtCore.QRect(80, 120, 51, 51)) self.Capacitor2.setCursor(QtGui.QCursor(QtCore.Qt.ClosedHandCursor)) self.Capacitor2.setAcceptDrops(False) self.Capacitor2.setText(_fromUtf8("")) icon1 = QtGui.QIcon() icon1.addPixmap(QtGui.QPixmap(_fromUtf8("capacitor.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.Capacitor2.setIcon(icon1) self.Capacitor2.setIconSize(QtCore.QSize(130, 70)) self.Capacitor2.setFlat(True) self.Capacitor2.setObjectName(_fromUtf8("Capacitor")) self.Capacitor2.setCheckable(True) self.Capacitor2.setChecked(False) self.Capacitor2.clicked.connect(self.handlebutton) self.Capacitor2.componentType = 'Capacitor' self.sceneCapacitor = self.scene.addWidget(self.Capacitor2) componentCount = componentCount + 1 def addInductorButton(self): global componentCount self.Inductor2 = DragButton('') ## self.Inductor2.setGeometry(QtCore.QRect(40, 280, 141, 51)) self.Inductor2.setCursor(QtGui.QCursor(QtCore.Qt.ClosedHandCursor)) self.Inductor2.setAcceptDrops(False) self.Inductor2.setText(_fromUtf8("")) icon3 = QtGui.QIcon() icon3.addPixmap(QtGui.QPixmap(_fromUtf8("Inductor.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.Inductor2.setIcon(icon3) self.Inductor2.setIconSize(QtCore.QSize(130, 70)) self.Inductor2.setFlat(True) self.Inductor2.setCheckable(True) self.Inductor2.setObjectName(_fromUtf8("Inductor")) self.Inductor2.clicked.connect(self.handlebutton) self.Inductor2.componentType = 'Inductor' self.scene.addWidget(self.Inductor2) componentCount = componentCount + 1 def addDiodeButton(self): global componentCount self.Diode2 = DragButton('') ## self.Diode2.setGeometry(QtCore.QRect(50, 190, 111, 71)) self.Diode2.setCursor(QtGui.QCursor(QtCore.Qt.ClosedHandCursor)) self.Diode2.setAcceptDrops(False) self.Diode2.setText(_fromUtf8("")) icon2 = QtGui.QIcon() icon2.addPixmap(QtGui.QPixmap(_fromUtf8("Diode.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.Diode2.setIcon(icon2) self.Diode2.setIconSize(QtCore.QSize(130, 70)) self.Diode2.setFlat(True) self.Diode2.setObjectName(_fromUtf8("Diode")) self.Diode2.clicked.connect(self.handlebutton) self.Diode2.setCheckable(True) self.Diode2.componentType = 'Diode' self.scene.addWidget(self.Diode2) componentCount = componentCount + 1 def addVoltageButton(self): global componentCount self.DCVoltageSource2 = DragButton('') self.DCVoltageSource2.setCursor( QtGui.QCursor(QtCore.Qt.ClosedHandCursor)) self.DCVoltageSource2.setAcceptDrops(False) self.DCVoltageSource2.setText(_fromUtf8("")) icon4 = QtGui.QIcon() icon4.addPixmap(QtGui.QPixmap(_fromUtf8("DCVoltageSource.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.DCVoltageSource2.setIcon(icon4) self.DCVoltageSource2.setIconSize(QtCore.QSize(139, 70)) self.DCVoltageSource2.setFlat(True) self.DCVoltageSource2.setObjectName(_fromUtf8("DC Voltage Source")) self.DCVoltageSource2.clicked.connect(self.handlebutton) self.DCVoltageSource2.setCheckable(True) self.DCVoltageSource2.componentType = 'DC Voltage Source' self.scene.addWidget(self.DCVoltageSource2) componentCount = componentCount + 1 def addBoundaryFaceButton(self): global componentCount self.BoundaryFace2 = DragButton('') self.BoundaryFace2.setCursor(QtGui.QCursor(QtCore.Qt.ClosedHandCursor)) self.BoundaryFace2.setAcceptDrops(False) self.BoundaryFace2.setText(_fromUtf8("")) icon4 = QtGui.QIcon() icon4.addPixmap(QtGui.QPixmap(_fromUtf8("BoundaryFace.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.BoundaryFace2.setIcon(icon4) self.BoundaryFace2.setIconSize(QtCore.QSize(139, 70)) self.BoundaryFace2.setFlat(True) self.BoundaryFace2.setObjectName(_fromUtf8("Boundary Face")) self.BoundaryFace2.clicked.connect(self.handlebutton) self.BoundaryFace2.componentType = 'Boundary Face' self.scene.addWidget(self.BoundaryFace2) componentCount = componentCount + 1 def addGroundButton(self): global ground, componentCount self.Ground2 = DragButton('') self.Ground2.setCursor(QtGui.QCursor(QtCore.Qt.ClosedHandCursor)) self.Ground2.setAcceptDrops(False) self.Ground2.setText(_fromUtf8("")) icon4 = QtGui.QIcon() icon4.addPixmap(QtGui.QPixmap(_fromUtf8("Ground.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.Ground2.setIcon(icon4) self.Ground2.setIconSize(QtCore.QSize(139, 70)) self.Ground2.setFlat(False) self.Ground2.setObjectName(_fromUtf8("Ground")) self.Ground2.componentType = 'Ground' self.scene.addWidget(self.Ground2) componentCount = componentCount + 1 def handlebutton(self): global componentCount if QtGui.qApp.keyboardModifiers() & QtCore.Qt.ShiftModifier: self.widgetSet = self.sender() self.Settings = SettingDialog(self) Type = self.widgetSet.componentType self.Settings.Type.setText(Type) self.Settings.exec_() self.widgetSet.name = self.Settings.Name.text() self.widgetSet.value = self.Settings.Value.value() self.widgetSet.unit = self.Settings.Unit.currentText() self.Settings.Name.clear() self.Settings.Value.setValue(0) self.Settings.Unit.setCurrentIndex(0) if QtGui.qApp.keyboardModifiers() & QtCore.Qt.AltModifier: self.transform = QtGui.QTransform() self.transform.rotate(90) self.selectedItem.setTransform(self.transform) self.spock.setChecked(True) self.rotatedButton = self.sender() self.rotatedButton.rotated = True if QtGui.qApp.keyboardModifiers() & QtCore.Qt.ControlModifier: self.scene.removeItem(self.selectedItem) componentCount = componentCount - 1
class MainWindow(QMainWindow, svLumpedGui3A.Ui_MainWindow): def __init__( self, SettingDialog, parent=None, ): super(MainWindow, self).__init__(parent) self.setupUi(self) self.Resistor.clicked.connect(self.addResistorButton) self.Capacitor.clicked.connect(self.addCapacitorButton) self.Inductor.clicked.connect(self.addInductorButton) self.Diode.clicked.connect(self.addDiodeButton) self.DCVoltageSource.clicked.connect(self.addVoltageButton) self.DeleteWire.clicked.connect(self.deleteWire) self.CircuitView.setScene(QtGui.QGraphicsScene(self)) self.BoundaryFace.clicked.connect(self.addBoundaryFaceButton) self.Ground.clicked.connect(self.addGroundButton) self.Export.clicked.connect(self.exportXML) ## self.Export.clicked.connect(self.nameTest) ## self.Export.clicked.connect(self.posTest) self.scene = self.CircuitView.scene() def mousePressEvent(self, event): global ground if event.buttons() == QtCore.Qt.MidButton: self.start = event.pos() self.start = self.mapToGlobal(event.pos()) self.start = self.CircuitView.mapFromGlobal(self.start) self.start = self.CircuitView.mapToScene(self.start) self.clickX = self.start.x() self.clickY = self.start.y() self.selectedItem = self.scene.itemAt(self.start) self.itemX = self.selectedItem.geometry().x() self.itemY = self.selectedItem.geometry().y() self.spock = self.selectedItem.widget() if (self.clickY > (self.itemY + 88)) & self.spock.isChecked(): self.start = QtCore.QPointF(self.itemX - 49, self.itemY + 176) elif (self.clickY < (self.itemY + 88)) & self.spock.isChecked(): self.start = QtCore.QPointF(self.itemX - 49, self.itemY) elif self.clickX < (self.itemX + 88): self.start = QtCore.QPointF(self.itemX, self.itemY + 49) elif self.clickX > (self.itemX + 88): self.start = QtCore.QPointF(self.itemX + 176, self.itemY + 49) if event.buttons() == QtCore.Qt.RightButton: self.end = event.pos() self.end = self.mapToGlobal(event.pos()) self.end = self.CircuitView.mapFromGlobal(self.end) self.end = self.CircuitView.mapToScene(self.end) self.clickX = self.end.x() self.clickY = self.end.y() self.selectedItem = self.scene.itemAt(self.end) self.itemX = self.selectedItem.geometry().x() self.itemY = self.selectedItem.geometry().y() self.spock = self.selectedItem.widget() if ground == True: if self.spock == self.Ground2: self.scene.removeItem(self.wire) self.end = QtCore.QPointF(self.itemX + 88, self.itemY) ground = False elif (self.clickY > (self.itemY + 88)) & self.spock.isChecked(): self.end = QtCore.QPointF(self.itemX - 49, self.itemY + 176) elif (self.clickY < (self.itemY + 88)) & self.spock.isChecked(): self.end = QtCore.QPointF(self.itemX - 49, self.itemY) elif self.clickX < (self.itemX + 88): self.end = QtCore.QPointF(self.itemX, self.itemY + 49) elif self.clickX > (self.itemX + 88): self.end = QtCore.QPointF(self.itemX + 176, self.itemY + 49) self.wire = QtGui.QGraphicsLineItem(QtCore.QLineF( self.start, self.end)) self.scene.addItem(self.wire) if self.start == self.end: self.scene.removeItem(self.wire) else: print self.start, self.end def deleteWire(self): self.scene.removeItem(self.wire) def exportXML(self): Dialog = SettingDialog() self.spock.name = Dialog.Name.text() self.spock.value = Dialog.Value.value() self.spock.unit = Dialog.Unit.currentIndex() self.componentPos = self.selectedItem.pos() print self.spock.componentType, self.spock.name, self.spock.value, self.spock.unit, self.componentPos ## def posTest(self): ## self.allItems = self.scene.items() ## print self.allItems ## def addResistorButton(self): self.Resistor2 = DragButton('') ## self.Resistor2.setGeometry(QtCore.QRect(40, 30, 131, 61)) self.Resistor2.setCursor(QtGui.QCursor(QtCore.Qt.ClosedHandCursor)) self.Resistor2.setAcceptDrops(False) self.Resistor2.setText(_fromUtf8("")) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(_fromUtf8("Resistor.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.Resistor2.setIcon(icon) self.Resistor2.setIconSize(QtCore.QSize(130, 70)) self.Resistor2.setObjectName(_fromUtf8("Resistor")) self.Resistor2.setFlat(True) self.Resistor2.setCheckable(True) self.Resistor2.clicked.connect(self.handlebutton) self.Resistor2.componentType = 'Resistor' self.scene_Resistor = self.scene.addWidget(self.Resistor2) ## self.Resistor2.name = SettingDialog.name ## self.Resistor2.value = SettingDialog.value ## self.Resistor2.unit = SettingDialog.unit def addCapacitorButton(self): self.Capacitor2 = DragButton('') ## self.Capacitor2.setGeometry(QtCore.QRect(80, 120, 51, 51)) self.Capacitor2.setCursor(QtGui.QCursor(QtCore.Qt.ClosedHandCursor)) self.Capacitor2.setAcceptDrops(False) self.Capacitor2.setText(_fromUtf8("")) icon1 = QtGui.QIcon() icon1.addPixmap(QtGui.QPixmap(_fromUtf8("capacitor.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.Capacitor2.setIcon(icon1) self.Capacitor2.setIconSize(QtCore.QSize(130, 70)) self.Capacitor2.setFlat(True) self.Capacitor2.setObjectName(_fromUtf8("Capacitor")) self.Capacitor2.setCheckable(True) self.Capacitor2.setChecked(False) self.Capacitor2.clicked.connect(self.handlebutton) self.Capacitor2.componentType = 'Capacitor' self.scene_Capacitor = self.scene.addWidget(self.Capacitor2) def addInductorButton(self): self.Inductor2 = DragButton('') ## self.Inductor2.setGeometry(QtCore.QRect(40, 280, 141, 51)) self.Inductor2.setCursor(QtGui.QCursor(QtCore.Qt.ClosedHandCursor)) self.Inductor2.setAcceptDrops(False) self.Inductor2.setText(_fromUtf8("")) icon3 = QtGui.QIcon() icon3.addPixmap(QtGui.QPixmap(_fromUtf8("Inductor.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.Inductor2.setIcon(icon3) self.Inductor2.setIconSize(QtCore.QSize(130, 70)) self.Inductor2.setFlat(True) self.Inductor2.setCheckable(True) self.Inductor2.setObjectName(_fromUtf8("Inductor")) self.Inductor2.clicked.connect(self.handlebutton) self.Inductor2.componentType = 'Inductor' self.scene.addWidget(self.Inductor2) def addDiodeButton(self): self.Diode2 = DragButton('') ## self.Diode2.setGeometry(QtCore.QRect(50, 190, 111, 71)) self.Diode2.setCursor(QtGui.QCursor(QtCore.Qt.ClosedHandCursor)) self.Diode2.setAcceptDrops(False) self.Diode2.setText(_fromUtf8("")) icon2 = QtGui.QIcon() icon2.addPixmap(QtGui.QPixmap(_fromUtf8("Diode.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.Diode2.setIcon(icon2) self.Diode2.setIconSize(QtCore.QSize(130, 70)) self.Diode2.setFlat(True) self.Diode2.setObjectName(_fromUtf8("Diode")) self.Diode2.clicked.connect(self.handlebutton) self.Diode2.setCheckable(True) self.Diode2.componentType = 'Diode' self.scene.addWidget(self.Diode2) print self.Diode2.componentType def addVoltageButton(self): self.DCVoltageSource2 = DragButton('') self.DCVoltageSource2.setCursor( QtGui.QCursor(QtCore.Qt.ClosedHandCursor)) self.DCVoltageSource2.setAcceptDrops(False) self.DCVoltageSource2.setText(_fromUtf8("")) icon4 = QtGui.QIcon() icon4.addPixmap(QtGui.QPixmap(_fromUtf8("DCVoltageSource.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.DCVoltageSource2.setIcon(icon4) self.DCVoltageSource2.setIconSize(QtCore.QSize(139, 70)) self.DCVoltageSource2.setFlat(True) self.DCVoltageSource2.setObjectName(_fromUtf8("DCVoltageSource")) self.DCVoltageSource2.clicked.connect(self.handlebutton) self.DCVoltageSource2.setCheckable(True) self.DCVoltageSource2.componentType = 'DCVoltageSource' self.scene.addWidget(self.DCVoltageSource2) print self.DCVoltageSource2.componentType def addBoundaryFaceButton(self): self.BoundaryFace2 = DragButton('') self.BoundaryFace2.setCursor(QtGui.QCursor(QtCore.Qt.ClosedHandCursor)) self.BoundaryFace2.setAcceptDrops(False) self.BoundaryFace2.setText(_fromUtf8("")) icon4 = QtGui.QIcon() icon4.addPixmap(QtGui.QPixmap(_fromUtf8("BoundaryFace.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.BoundaryFace2.setIcon(icon4) self.BoundaryFace2.setIconSize(QtCore.QSize(139, 70)) self.BoundaryFace2.setFlat(True) self.BoundaryFace2.setObjectName(_fromUtf8("BoundaryFace")) self.BoundaryFace2.clicked.connect(self.handlebutton) self.BoundaryFace2.componentType = 'BoundaryFace' self.scene.addWidget(self.BoundaryFace2) print self.BoundaryFace2.componentType def addGroundButton(self): global ground self.Ground2 = DragButton('') self.Ground2.setCursor(QtGui.QCursor(QtCore.Qt.ClosedHandCursor)) self.Ground2.setAcceptDrops(False) self.Ground2.setText(_fromUtf8("")) icon4 = QtGui.QIcon() icon4.addPixmap(QtGui.QPixmap(_fromUtf8("Ground.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.Ground2.setIcon(icon4) self.Ground2.setIconSize(QtCore.QSize(139, 70)) self.Ground2.setFlat(True) self.Ground2.setObjectName(_fromUtf8("Ground")) self.Ground2.clicked.connect(self.handlebutton) self.Ground2.componentType = 'Ground' self.scene.addWidget(self.Ground2) print self.Ground2.componentType ground = True def handlebutton(self): if QtGui.qApp.keyboardModifiers() & QtCore.Qt.ShiftModifier: form = SettingDialog(self) form.show() if QtGui.qApp.keyboardModifiers() & QtCore.Qt.AltModifier: self.transform = QtGui.QTransform() self.transform.rotate(90) self.selectedItem.setTransform(self.transform) self.spock.setChecked(True) if QtGui.qApp.keyboardModifiers() & QtCore.Qt.ControlModifier: self.scene.removeItem(self.selectedItem) def nameTest(self): dialog = SettingDialog() ## name = dialog.name ## print name print dialog.Name.text()
class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName(_fromUtf8("MainWindow")) MainWindow.resize(991, 626) MainWindow.setAcceptDrops(True) self.centralwidget = QtGui.QWidget(MainWindow) self.centralwidget.setObjectName(_fromUtf8("centralwidget")) self.ComponentList = QtGui.QToolBox(self.centralwidget) self.ComponentList.setGeometry(QtCore.QRect(0, 0, 231, 531)) self.ComponentList.setMouseTracking(True) self.ComponentList.setAcceptDrops(True) self.ComponentList.setObjectName(_fromUtf8("ComponentList")) self.Components = QtGui.QWidget() self.Components.setGeometry(QtCore.QRect(0, 0, 231, 497)) self.Components.setObjectName(_fromUtf8("Components")) self.Resistor = DragButton(self.Components) self.Resistor.setGeometry(QtCore.QRect(40, 30, 131, 61)) self.Resistor.setCursor(QtGui.QCursor(QtCore.Qt.ClosedHandCursor)) self.Resistor.setAcceptDrops(False) self.Resistor.setText(_fromUtf8("")) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(_fromUtf8("Resistor.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.Resistor.setIcon(icon) self.Resistor.setIconSize(QtCore.QSize(130, 67)) self.Resistor.setFlat(True) self.Resistor.setObjectName(_fromUtf8("Resistor")) self.Capacitor = DragButton(self.Components) self.Capacitor.setGeometry(QtCore.QRect(80, 120, 51, 51)) self.Capacitor.setCursor(QtGui.QCursor(QtCore.Qt.ClosedHandCursor)) self.Capacitor.setAcceptDrops(False) self.Capacitor.setText(_fromUtf8("")) icon1 = QtGui.QIcon() icon1.addPixmap(QtGui.QPixmap(_fromUtf8("capacitor.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.Capacitor.setIcon(icon1) self.Capacitor.setIconSize(QtCore.QSize(150, 60)) self.Capacitor.setCheckable(False) self.Capacitor.setFlat(True) self.Capacitor.setObjectName(_fromUtf8("Capacitor")) self.Diode = DragButton(self.Components) self.Diode.setGeometry(QtCore.QRect(50, 190, 111, 71)) self.Diode.setCursor(QtGui.QCursor(QtCore.Qt.ClosedHandCursor)) self.Diode.setAcceptDrops(False) self.Diode.setText(_fromUtf8("")) icon2 = QtGui.QIcon() icon2.addPixmap(QtGui.QPixmap(_fromUtf8("Diode.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.Diode.setIcon(icon2) self.Diode.setIconSize(QtCore.QSize(200, 67)) self.Diode.setFlat(True) self.Diode.setObjectName(_fromUtf8("Diode")) self.Inductor = DragButton(self.Components) self.Inductor.setGeometry(QtCore.QRect(40, 280, 141, 51)) self.Inductor.setCursor(QtGui.QCursor(QtCore.Qt.ClosedHandCursor)) self.Inductor.setAcceptDrops(False) self.Inductor.setText(_fromUtf8("")) icon3 = QtGui.QIcon() icon3.addPixmap(QtGui.QPixmap(_fromUtf8("Inductor.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.Inductor.setIcon(icon3) self.Inductor.setIconSize(QtCore.QSize(135, 80)) self.Inductor.setFlat(True) self.Inductor.setObjectName(_fromUtf8("Inductor")) self.DCVoltageSource = DragButton(self.Components) self.DCVoltageSource.setGeometry(QtCore.QRect(70, 350, 71, 71)) self.DCVoltageSource.setCursor( QtGui.QCursor(QtCore.Qt.ClosedHandCursor)) self.DCVoltageSource.setAcceptDrops(False) self.DCVoltageSource.setText(_fromUtf8("")) icon4 = QtGui.QIcon() icon4.addPixmap(QtGui.QPixmap(_fromUtf8("DCVoltageSource.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.DCVoltageSource.setIcon(icon4) self.DCVoltageSource.setIconSize(QtCore.QSize(100, 60)) self.DCVoltageSource.setFlat(True) self.DCVoltageSource.setObjectName(_fromUtf8("DCVoltageSource")) self.ComponentList.addItem(self.Components, _fromUtf8("")) self.frame = QtGui.QFrame(self.centralwidget) self.frame.setGeometry(QtCore.QRect(239, -1, 561, 651)) self.frame.setFrameShape(QtGui.QFrame.StyledPanel) self.frame.setFrameShadow(QtGui.QFrame.Raised) self.frame.setObjectName(_fromUtf8("frame")) self.widget = QtGui.QWidget(self.frame) self.widget.setGeometry(QtCore.QRect(-10, -10, 581, 581)) self.widget.setAcceptDrops(True) self.widget.setObjectName(_fromUtf8("widget")) MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtGui.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 991, 22)) self.menubar.setObjectName(_fromUtf8("menubar")) self.menuFile = QtGui.QMenu(self.menubar) self.menuFile.setObjectName(_fromUtf8("menuFile")) MainWindow.setMenuBar(self.menubar) self.statusbar = QtGui.QStatusBar(MainWindow) self.statusbar.setObjectName(_fromUtf8("statusbar")) MainWindow.setStatusBar(self.statusbar) self.actionNew = QtGui.QAction(MainWindow) self.actionNew.setObjectName(_fromUtf8("actionNew")) self.actionOpem = QtGui.QAction(MainWindow) self.actionOpem.setObjectName(_fromUtf8("actionOpem")) self.actionOpen = QtGui.QAction(MainWindow) self.actionOpen.setObjectName(_fromUtf8("actionOpen")) self.actionSave = QtGui.QAction(MainWindow) self.actionSave.setObjectName(_fromUtf8("actionSave")) self.actionQuit = QtGui.QAction(MainWindow) self.actionQuit.setObjectName(_fromUtf8("actionQuit")) self.menuFile.addAction(self.actionNew) self.menuFile.addAction(self.actionOpen) self.menuFile.addSeparator() self.menuFile.addAction(self.actionSave) self.menuFile.addSeparator() self.menuFile.addAction(self.actionQuit) self.menubar.addAction(self.menuFile.menuAction()) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): MainWindow.setWindowTitle( QtGui.QApplication.translate("MainWindow", "svLumpedPM", None, QtGui.QApplication.UnicodeUTF8)) self.Resistor.setToolTip( QtGui.QApplication.translate("MainWindow", "Resistor", None, QtGui.QApplication.UnicodeUTF8)) self.Resistor.setStatusTip( QtGui.QApplication.translate("MainWindow", "Resistor Selected", None, QtGui.QApplication.UnicodeUTF8)) self.Capacitor.setToolTip( QtGui.QApplication.translate("MainWindow", "Capacitor", None, QtGui.QApplication.UnicodeUTF8)) self.Capacitor.setStatusTip( QtGui.QApplication.translate("MainWindow", "Capacitor Selected", None, QtGui.QApplication.UnicodeUTF8)) self.Diode.setToolTip( QtGui.QApplication.translate("MainWindow", "Diode", None, QtGui.QApplication.UnicodeUTF8)) self.Diode.setStatusTip( QtGui.QApplication.translate("MainWindow", "Diode Selected", None, QtGui.QApplication.UnicodeUTF8)) self.Inductor.setToolTip( QtGui.QApplication.translate("MainWindow", "Inductor", None, QtGui.QApplication.UnicodeUTF8)) self.Inductor.setStatusTip( QtGui.QApplication.translate("MainWindow", "Inductor Selected", None, QtGui.QApplication.UnicodeUTF8)) self.DCVoltageSource.setToolTip( QtGui.QApplication.translate("MainWindow", "DC Voltage Source", None, QtGui.QApplication.UnicodeUTF8)) self.DCVoltageSource.setStatusTip( QtGui.QApplication.translate("MainWindow", "DC Voltage Source Selected", None, QtGui.QApplication.UnicodeUTF8)) self.ComponentList.setItemText( self.ComponentList.indexOf(self.Components), QtGui.QApplication.translate("MainWindow", "Circuit Components", None, QtGui.QApplication.UnicodeUTF8)) self.menuFile.setTitle( QtGui.QApplication.translate("MainWindow", "File", None, QtGui.QApplication.UnicodeUTF8)) self.actionNew.setText( QtGui.QApplication.translate("MainWindow", "New", None, QtGui.QApplication.UnicodeUTF8)) self.actionOpem.setText( QtGui.QApplication.translate("MainWindow", "Opem", None, QtGui.QApplication.UnicodeUTF8)) self.actionOpen.setText( QtGui.QApplication.translate("MainWindow", "Open", None, QtGui.QApplication.UnicodeUTF8)) self.actionSave.setText( QtGui.QApplication.translate("MainWindow", "Save", None, QtGui.QApplication.UnicodeUTF8)) self.actionQuit.setText( QtGui.QApplication.translate("MainWindow", "Quit", None, QtGui.QApplication.UnicodeUTF8))