def __init__(self, parent=None): QtGui.QMainWindow.__init__(self) self.ui = Ui_MainWindow() self.ui.setupUi(self) self.gv = self.ui.graphicsView self.setup_graphics_view() self.connect(self.ui.pushButton_Quit, QtCore.SIGNAL("clicked()"), QtGui.qApp.quit) self.connect(self.ui.pushButton_symmetric, QtCore.SIGNAL("clicked()"), self.make_symmetric) self.connect(self.ui.pushButton_mirrored, QtCore.SIGNAL("clicked()"), self.make_mirrored) self.connect(self.ui.pushButton_Clear, QtCore.SIGNAL("clicked()"), self.clear_points)
class MainWindow(QtGui.QMainWindow): def __init__(self, parent=None): QtGui.QMainWindow.__init__(self) self.ui = Ui_MainWindow() self.ui.setupUi(self) self.gv = self.ui.graphicsView self.setup_graphics_view() self.connect(self.ui.pushButton_Quit, QtCore.SIGNAL("clicked()"), QtGui.qApp.quit) self.connect(self.ui.pushButton_symmetric, QtCore.SIGNAL("clicked()"), self.make_symmetric) self.connect(self.ui.pushButton_mirrored, QtCore.SIGNAL("clicked()"), self.make_mirrored) self.connect(self.ui.pushButton_Clear, QtCore.SIGNAL("clicked()"), self.clear_points) def setup_graphics_view(self): self.scene = QtGui.QGraphicsScene() self.gv.setScene(self.scene) self.gv.setBackgroundBrush(QtCore.Qt.gray) pen = QtGui.QPen() pen.setWidth(2) pen.setColor(QtCore.Qt.black) self.scene.addLine(-100,-40,100,-40,pen) self.scene.addLine(-100, 40,100, 40,pen) # l1 is the left line self.l1 = ModuleFringeLine(None, None, -100, 40, -100, -40) # l2 is the right line self.l2 = ModuleFringeLine(None, None, 100, -40, 100, 40) self.scene.addItem(self.l1) self.scene.addItem(self.l2) self.update_text_view() @staticmethod def get_points(line, side): lst = [] while not (line.rightJoint is None): lst.append(line.rightJoint.toVisTrails(side)) line = line.rightJoint.rightLine return lst def update_text_view(self): s = '' left_list = self.get_points(self.l1, 'left') right_list = self.get_points(self.l2, 'right') for (preamble, postamble, side, pts) in zip(['reg.add_module(your_class,\n moduleLeftFringe=[(0.0, 0.0), ', ' moduleRightFringe=[(0.0, 0.0), '], ['(0.0, 1.0)],\n', '(0.0, 1.0)])\n'], ['left', 'right'], [left_list, reversed(right_list)]): f = pts s += preamble for p in pts: s += ('(%.4f, %.4f), ' % p) s += postamble self.ui.textEdit.clear() self.ui.textEdit.append(s) ########################################################################## # slots def make_symmetric(self): while not (self.l2.rightJoint is None): self.l2.rightJoint.removeSelf() l1 = self.l1 l2 = self.l2 while not (l1.rightJoint is None): t = l1.rightJoint.toVisTrails('left') t = (-t[0], t[1]) p = ModuleFringeJoint.toScene(t, 'right') l2 = l2.createNewLine(p) l1 = l1.rightJoint.rightLine self.update_text_view() def make_mirrored(self): while not (self.l2.rightJoint is None): self.l2.rightJoint.removeSelf() l1 = self.l1 pl = [] while not (l1.rightJoint is None): p = l1.rightJoint.scenePos() pl.append(QtCore.QPointF(-p.x(), p.y())) l1 = l1.rightJoint.rightLine l2 = self.l2 for p in reversed(pl): l2 = l2.createNewLine(p) self.update_text_view() def clear_points(self): while not (self.l2.rightJoint is None): self.l2.rightJoint.removeSelf() while not (self.l1.rightJoint is None): self.l1.rightJoint.removeSelf() self.update_text_view()
class MainWindow(QtGui.QMainWindow): def __init__(self, parent=None): QtGui.QMainWindow.__init__(self) self.ui = Ui_MainWindow() self.ui.setupUi(self) self.gv = self.ui.graphicsView self.setup_graphics_view() self.connect(self.ui.pushButton_Quit, QtCore.SIGNAL("clicked()"), QtGui.qApp.quit) self.connect(self.ui.pushButton_symmetric, QtCore.SIGNAL("clicked()"), self.make_symmetric) self.connect(self.ui.pushButton_mirrored, QtCore.SIGNAL("clicked()"), self.make_mirrored) self.connect(self.ui.pushButton_Clear, QtCore.SIGNAL("clicked()"), self.clear_points) def setup_graphics_view(self): self.scene = QtGui.QGraphicsScene() self.gv.setScene(self.scene) self.gv.setBackgroundBrush(QtCore.Qt.gray) pen = QtGui.QPen() pen.setWidth(2) pen.setColor(QtCore.Qt.black) self.scene.addLine(-100, -40, 100, -40, pen) self.scene.addLine(-100, 40, 100, 40, pen) # l1 is the left line self.l1 = ModuleFringeLine(None, None, -100, 40, -100, -40) # l2 is the right line self.l2 = ModuleFringeLine(None, None, 100, -40, 100, 40) self.scene.addItem(self.l1) self.scene.addItem(self.l2) self.update_text_view() @staticmethod def get_points(line, side): lst = [] while not (line.rightJoint is None): lst.append(line.rightJoint.toVisTrails(side)) line = line.rightJoint.rightLine return lst def update_text_view(self): s = '' left_list = self.get_points(self.l1, 'left') right_list = self.get_points(self.l2, 'right') for (preamble, postamble, side, pts) in zip( [ 'reg.add_module(your_class,\n moduleLeftFringe=[(0.0, 0.0), ', ' moduleRightFringe=[(0.0, 0.0), ' ], ['(0.0, 1.0)],\n', '(0.0, 1.0)])\n'], ['left', 'right'], [left_list, reversed(right_list)]): f = pts s += preamble for p in pts: s += ('(%.4f, %.4f), ' % p) s += postamble self.ui.textEdit.clear() self.ui.textEdit.append(s) ########################################################################## # slots def make_symmetric(self): while not (self.l2.rightJoint is None): self.l2.rightJoint.removeSelf() l1 = self.l1 l2 = self.l2 while not (l1.rightJoint is None): t = l1.rightJoint.toVisTrails('left') t = (-t[0], t[1]) p = ModuleFringeJoint.toScene(t, 'right') l2 = l2.createNewLine(p) l1 = l1.rightJoint.rightLine self.update_text_view() def make_mirrored(self): while not (self.l2.rightJoint is None): self.l2.rightJoint.removeSelf() l1 = self.l1 pl = [] while not (l1.rightJoint is None): p = l1.rightJoint.scenePos() pl.append(QtCore.QPointF(-p.x(), p.y())) l1 = l1.rightJoint.rightLine l2 = self.l2 for p in reversed(pl): l2 = l2.createNewLine(p) self.update_text_view() def clear_points(self): while not (self.l2.rightJoint is None): self.l2.rightJoint.removeSelf() while not (self.l1.rightJoint is None): self.l1.rightJoint.removeSelf() self.update_text_view()