Beispiel #1
0
 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)
Beispiel #2
0
 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)
Beispiel #3
0
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()
Beispiel #4
0
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()