예제 #1
0
class GraphicsWidget(QWidget):
    def __init__(self):
        QWidget.__init__(self, None)
        self.view = GV(self)
        self.scene = GS(self.view, self)
        self.view.setScene(self.scene)
        self.prevPoint = QPoint()
        layout = QHBoxLayout()
        layout.addWidget(self.view)
        self.setLayout(layout)
        self.controller = None

    def fit_view(self):
        self.view._scale_fit()

    def add_box(self, name, color="black", position=QPointF(0, 0)):
        b = Box(position=position, scene=self.scene, name=name, color=color)
        return b

    #Controller Functions
    def set_controller(self, controller):
        self.controller = controller

    def get_controller(self):
        return self.controller

    def drop_event(self, event):
        #Send an event to a controller
        print "Demo Graphics View: Drop Event"
예제 #2
0
class FPGABusView(GraphicsWidget):

    def __init__(self, parent, status, actions):
        self.status = status
        self.actions = actions
        #Create a view
        self.view = GraphicsView(parent)
        #Create a scene
        self.scene = GraphicsScene(self.view, status, actions, self)
        super (FPGABusView, self).__init__(self.view, self.scene)
        self.boxes = {}
        self.show()
        self.fi = parent

    def fit_in_view(self):
        self.view.fit_in_view()

    def clear(self):
        #self.status.Verbose( "Clearing the FPGA Image")
        #print "Items: %s" % str(self.view.items())
        self.scene.clear()
        self.boxes = {}
        self.scene.clear_links()

    def update(self):
        super (FPGABusView, self).update()
        self.scene.auto_update_all_links()
        self.view._scale_fit()
        #self.scene.update(self.scene.sceneRect())
        #self.scene.invalidate(self.scene.sceneRect())

    def sizeHint (self):
        size = QSize()
        size.setWidth(600)
        return size
예제 #3
0
class GraphicsWidget (QWidget):

    def __init__(self):
        QWidget.__init__(self, None)
        self.view = GV(self)
        self.scene = GS(self.view, self)
        self.view.setScene(self.scene)
        self.prevPoint = QPoint()
        layout = QHBoxLayout()
        layout.addWidget(self.view)
        self.setLayout(layout)
        self.controller = None

    def fit_view(self):
        self.view._scale_fit()

    def add_box(self, name, color = "black", position = QPointF(0, 0)):
        b = Box(position = position,
            scene = self.scene,
            name = name,
            color = color)
        return b

    #Controller Functions
    def set_controller(self, controller):
        self.controller = controller

    def get_controller(self):
        return self.controller

    def drop_event(self, event):
        #Send an event to a controller
        print "Demo Graphics View: Drop Event"
예제 #4
0
 def __init__(self, parent, actions):
     self.actions = actions
     self.view = GraphicsView(parent)
     self.scene = GraphicsScene(self.view, self.actions)
     super(VisualizerView, self).__init__(self.view, self.scene)
     self.boxes = {}
     self.show()
예제 #5
0
 def __init__(self):
     QWidget.__init__(self, None)
     self.view = GV(self)
     self.scene = GS(self.view, self)
     self.view.setScene(self.scene)
     self.prevPoint = QPoint()
     layout = QHBoxLayout()
     layout.addWidget(self.view)
     self.setLayout(layout)
     self.controller = None
예제 #6
0
 def __init__(self):
     QWidget.__init__(self, None)
     self.view = GV(self)
     self.scene = GS(self.view, self)
     self.view.setScene(self.scene)
     self.prevPoint = QPoint()
     layout = QHBoxLayout()
     layout.addWidget(self.view)
     self.setLayout(layout)
     self.controller = None
예제 #7
0
 def __init__(self, parent, status, actions):
     self.status = status
     self.actions = actions
     #Create a view
     self.view = GraphicsView(parent)
     #Create a scene
     self.scene = GraphicsScene(self.view, status, actions, self)
     super (FPGABusView, self).__init__(self.view, self.scene)
     self.boxes = {}
     self.show()
     self.fi = parent
예제 #8
0
 def __init__(self, parent, actions, status):
     self.status = status
     self.actions = actions
     #Create a view
     self.view = GraphicsView(parent, self.actions, self.status)
     #Create a scene
     self.scene = GraphicsScene(self.view, status, actions, self)
     super (NysaBusView, self).__init__(self.view, self.scene)
     self.setSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Preferred)
     self.boxes = {}
     #self.show()
     self.fi = parent
예제 #9
0
    def initUI(self):

        self.layout = QVBoxLayout()
        self.layout.setContentsMargins(0, 0, 0, 0)
        self.setLayout(self.layout)

        # crate graphics scene
        self.scene = Scene()

        # create graphics view
        self.view = GraphicsView(self.scene.grScene, self)
        self.layout.addWidget(self.view)
예제 #10
0
    def __init__(self, actions, status):
        super (BuildFlowView, self).__init__()
        self.actions = actions
        self.status = status

        layout = QHBoxLayout()
        self.view = GraphicsView(self.actions, self.status, self)
        self.scene = GraphicsScene(self.actions, self.status, self.view, self)

        self.view.setScene(self.scene)

        layout.addWidget(self.view)
        self.setLayout(layout)
        self.builders = {}
        self.initialize_view()
예제 #11
0
class VisualizerView(GraphicsWidget):

    def __init__(self, parent, actions):
        self.actions = actions
        self.view = GraphicsView(parent)
        self.scene = GraphicsScene(self.view, self.actions)
        super(VisualizerView, self).__init__(self.view, self.scene)
        self.boxes = {}
        self.show()

    def clear(self):
        #print "Items: %s" % str(self.view.items())
        self.scene.clear()
        self.boxes = {}
        self.scene.clear_links()

    def update(self):
        super (VisualizerViewer, self).update()
        self.view._scale_fit()

    def sizeHint (self):
        size = QSize()
        size.setWidth(600)
        return size
예제 #12
0
    def __init__(self, view = None, scene = None):
        QWidget.__init__(self, None)
        if view is None:
            self.view = GV(self)
        else:
            self.view = view

        if scene is None:
            self.scene = GS(self.view, self)
        else:
            self.scene = scene
        self.view.setScene(self.scene)
        self.prevPoint = PyQt4.QtCore.QPoint()
        layout = QHBoxLayout()
        layout.addWidget(self.view)
        self.setLayout(layout)
        self.controller = None
예제 #13
0
class NysaBusView(GraphicsWidget):

    def __init__(self, parent, actions, status):
        self.status = status
        self.actions = actions
        #Create a view
        self.view = GraphicsView(parent, self.actions, self.status)
        #Create a scene
        self.scene = GraphicsScene(self.view, status, actions, self)
        super (NysaBusView, self).__init__(self.view, self.scene)
        self.setSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Preferred)
        self.boxes = {}
        #self.show()
        self.fi = parent

    def fit_in_view(self):
        self.view.fit_in_view()

    def set_controller(self, controller):
        self.view.set_controller(controller)
        self.scene.set_controller(controller)

    def clear(self):
        #self.status.Verbose( "Clearing the FPGA Image")
        #print "Items: %s" % str(self.view.items())
        self.scene.clear()
        self.boxes = {}
        self.scene.clear_links()

    def update(self):
        super (NysaBusView, self).update()
        self.view._scale_fit()
        #self.scene.update(self.scene.sceneRect())
        #self.scene.invalidate(self.scene.sceneRect())

    def sizeHint (self):
        size = QSize()
        size.setWidth(600)
        return size

    def get_scene(self):
        return self.scene
예제 #14
0
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(1000, 800)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget)
        self.verticalLayout.setContentsMargins(2, 2, 2, 2)
        self.verticalLayout.setSpacing(2)
        self.verticalLayout.setObjectName("verticalLayout")
        self.graphicsView = GraphicsView(self.centralwidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.graphicsView.sizePolicy().hasHeightForWidth())
        self.graphicsView.setSizePolicy(sizePolicy)
        self.graphicsView.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
        self.graphicsView.setAcceptDrops(False)
        brush = QtGui.QBrush(QtGui.QColor(150, 150, 150))
        brush.setStyle(QtCore.Qt.SolidPattern)
        self.graphicsView.setBackgroundBrush(brush)
        self.graphicsView.setRenderHints(QtGui.QPainter.Antialiasing
                                         | QtGui.QPainter.SmoothPixmapTransform
                                         | QtGui.QPainter.TextAntialiasing)
        self.graphicsView.setDragMode(QtWidgets.QGraphicsView.ScrollHandDrag)
        self.graphicsView.setObjectName("graphicsView")
        self.verticalLayout.addWidget(self.graphicsView)
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 1000, 21))
        self.menubar.setAcceptDrops(False)
        self.menubar.setObjectName("menubar")
        self.menuFile = QtWidgets.QMenu(self.menubar)
        self.menuFile.setAcceptDrops(False)
        self.menuFile.setObjectName("menuFile")
        self.menuEdit = QtWidgets.QMenu(self.menubar)
        self.menuEdit.setObjectName("menuEdit")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)
        self.toolBar = QtWidgets.QToolBar(MainWindow)
        self.toolBar.setIconSize(QtCore.QSize(30, 30))
        self.toolBar.setObjectName("toolBar")
        MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBar)
        self.dockWidgetFile = QtWidgets.QDockWidget(MainWindow)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred,
                                           QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.dockWidgetFile.sizePolicy().hasHeightForWidth())
        self.dockWidgetFile.setSizePolicy(sizePolicy)
        self.dockWidgetFile.setMinimumSize(QtCore.QSize(160, 97))
        self.dockWidgetFile.setObjectName("dockWidgetFile")
        self.dockWidgetContents = QtWidgets.QWidget()
        self.dockWidgetContents.setObjectName("dockWidgetContents")
        self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.dockWidgetContents)
        self.verticalLayout_2.setContentsMargins(2, 2, 2, 2)
        self.verticalLayout_2.setSpacing(2)
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.tableViewFile = QtWidgets.QTableView(self.dockWidgetContents)
        self.tableViewFile.setMinimumSize(QtCore.QSize(150, 0))
        self.tableViewFile.setAcceptDrops(True)
        self.tableViewFile.setDragDropOverwriteMode(False)
        self.tableViewFile.setObjectName("tableViewFile")
        self.verticalLayout_2.addWidget(self.tableViewFile)
        self.dockWidgetFile.setWidget(self.dockWidgetContents)
        MainWindow.addDockWidget(QtCore.Qt.DockWidgetArea(1),
                                 self.dockWidgetFile)
        self.dockWidgetStanp = QtWidgets.QDockWidget(MainWindow)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred,
                                           QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.dockWidgetStanp.sizePolicy().hasHeightForWidth())
        self.dockWidgetStanp.setSizePolicy(sizePolicy)
        self.dockWidgetStanp.setMinimumSize(QtCore.QSize(300, 200))
        self.dockWidgetStanp.setObjectName("dockWidgetStanp")
        self.dockWidgetContents_2 = QtWidgets.QWidget()
        self.dockWidgetContents_2.setObjectName("dockWidgetContents_2")
        self.verticalLayout_3 = QtWidgets.QVBoxLayout(
            self.dockWidgetContents_2)
        self.verticalLayout_3.setContentsMargins(2, 2, 2, 2)
        self.verticalLayout_3.setSpacing(2)
        self.verticalLayout_3.setObjectName("verticalLayout_3")
        self.tableViewStamp = QtWidgets.QTableView(self.dockWidgetContents_2)
        self.tableViewStamp.setAlternatingRowColors(True)
        self.tableViewStamp.setObjectName("tableViewStamp")
        self.tableViewStamp.verticalHeader().setDefaultSectionSize(50)
        self.tableViewStamp.verticalHeader().setMinimumSectionSize(50)
        self.verticalLayout_3.addWidget(self.tableViewStamp)
        self.dockWidgetStanp.setWidget(self.dockWidgetContents_2)
        MainWindow.addDockWidget(QtCore.Qt.DockWidgetArea(1),
                                 self.dockWidgetStanp)
        self.dockWidget = QtWidgets.QDockWidget(MainWindow)
        self.dockWidget.setObjectName("dockWidget")
        self.dockWidgetContents_3 = QtWidgets.QWidget()
        self.dockWidgetContents_3.setObjectName("dockWidgetContents_3")
        self.verticalLayout_6 = QtWidgets.QVBoxLayout(
            self.dockWidgetContents_3)
        self.verticalLayout_6.setContentsMargins(2, 2, 2, 2)
        self.verticalLayout_6.setSpacing(2)
        self.verticalLayout_6.setObjectName("verticalLayout_6")
        self.tabWidget = QtWidgets.QTabWidget(self.dockWidgetContents_3)
        self.tabWidget.setObjectName("tabWidget")
        self.tab_circle_stamp = QtWidgets.QWidget()
        self.tab_circle_stamp.setObjectName("tab_circle_stamp")
        self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.tab_circle_stamp)
        self.verticalLayout_4.setContentsMargins(2, 2, 2, 2)
        self.verticalLayout_4.setSpacing(2)
        self.verticalLayout_4.setObjectName("verticalLayout_4")
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_2.setSpacing(2)
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.label = QtWidgets.QLabel(self.tab_circle_stamp)
        font = QtGui.QFont()
        font.setPointSize(10)
        self.label.setFont(font)
        self.label.setObjectName("label")
        self.horizontalLayout_2.addWidget(self.label)
        self.doubleSpinBox_height = QtWidgets.QDoubleSpinBox(
            self.tab_circle_stamp)
        self.doubleSpinBox_height.setMinimumSize(QtCore.QSize(0, 24))
        font = QtGui.QFont()
        font.setPointSize(10)
        self.doubleSpinBox_height.setFont(font)
        self.doubleSpinBox_height.setDecimals(1)
        self.doubleSpinBox_height.setMaximum(99999.0)
        self.doubleSpinBox_height.setProperty("value", 30.0)
        self.doubleSpinBox_height.setObjectName("doubleSpinBox_height")
        self.horizontalLayout_2.addWidget(self.doubleSpinBox_height)
        self.label_2 = QtWidgets.QLabel(self.tab_circle_stamp)
        font = QtGui.QFont()
        font.setPointSize(10)
        self.label_2.setFont(font)
        self.label_2.setObjectName("label_2")
        self.horizontalLayout_2.addWidget(self.label_2)
        self.doubleSpinBox_width = QtWidgets.QDoubleSpinBox(
            self.tab_circle_stamp)
        self.doubleSpinBox_width.setMinimumSize(QtCore.QSize(0, 24))
        font = QtGui.QFont()
        font.setPointSize(10)
        self.doubleSpinBox_width.setFont(font)
        self.doubleSpinBox_width.setDecimals(1)
        self.doubleSpinBox_width.setMaximum(99999.0)
        self.doubleSpinBox_width.setProperty("value", 30.0)
        self.doubleSpinBox_width.setObjectName("doubleSpinBox_width")
        self.horizontalLayout_2.addWidget(self.doubleSpinBox_width)
        self.verticalLayout_4.addLayout(self.horizontalLayout_2)
        self.gridLayout = QtWidgets.QGridLayout()
        self.gridLayout.setSpacing(2)
        self.gridLayout.setObjectName("gridLayout")
        self.lineEdit_3 = QtWidgets.QLineEdit(self.tab_circle_stamp)
        self.lineEdit_3.setMinimumSize(QtCore.QSize(0, 24))
        font = QtGui.QFont()
        font.setPointSize(10)
        self.lineEdit_3.setFont(font)
        self.lineEdit_3.setObjectName("lineEdit_3")
        self.gridLayout.addWidget(self.lineEdit_3, 2, 0, 1, 1)
        self.lineEdit = QtWidgets.QLineEdit(self.tab_circle_stamp)
        self.lineEdit.setMinimumSize(QtCore.QSize(0, 24))
        font = QtGui.QFont()
        font.setPointSize(10)
        self.lineEdit.setFont(font)
        self.lineEdit.setObjectName("lineEdit")
        self.gridLayout.addWidget(self.lineEdit, 0, 0, 1, 1)
        self.lineEdit_2 = QtWidgets.QLineEdit(self.tab_circle_stamp)
        self.lineEdit_2.setMinimumSize(QtCore.QSize(0, 24))
        font = QtGui.QFont()
        font.setPointSize(10)
        self.lineEdit_2.setFont(font)
        self.lineEdit_2.setObjectName("lineEdit_2")
        self.gridLayout.addWidget(self.lineEdit_2, 1, 0, 1, 1)
        self.doubleSpinBox = QtWidgets.QDoubleSpinBox(self.tab_circle_stamp)
        self.doubleSpinBox.setMinimumSize(QtCore.QSize(0, 24))
        font = QtGui.QFont()
        font.setPointSize(10)
        self.doubleSpinBox.setFont(font)
        self.doubleSpinBox.setDecimals(1)
        self.doubleSpinBox.setMaximum(9999.0)
        self.doubleSpinBox.setProperty("value", 6.5)
        self.doubleSpinBox.setObjectName("doubleSpinBox")
        self.gridLayout.addWidget(self.doubleSpinBox, 0, 1, 1, 1)
        self.doubleSpinBox_2 = QtWidgets.QDoubleSpinBox(self.tab_circle_stamp)
        self.doubleSpinBox_2.setMinimumSize(QtCore.QSize(0, 24))
        font = QtGui.QFont()
        font.setPointSize(10)
        self.doubleSpinBox_2.setFont(font)
        self.doubleSpinBox_2.setDecimals(1)
        self.doubleSpinBox_2.setProperty("value", 5.0)
        self.doubleSpinBox_2.setObjectName("doubleSpinBox_2")
        self.gridLayout.addWidget(self.doubleSpinBox_2, 1, 1, 1, 1)
        self.doubleSpinBox_3 = QtWidgets.QDoubleSpinBox(self.tab_circle_stamp)
        self.doubleSpinBox_3.setMinimumSize(QtCore.QSize(0, 24))
        font = QtGui.QFont()
        font.setPointSize(10)
        self.doubleSpinBox_3.setFont(font)
        self.doubleSpinBox_3.setDecimals(1)
        self.doubleSpinBox_3.setProperty("value", 6.5)
        self.doubleSpinBox_3.setObjectName("doubleSpinBox_3")
        self.gridLayout.addWidget(self.doubleSpinBox_3, 2, 1, 1, 1)
        self.verticalLayout_4.addLayout(self.gridLayout)
        self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_3.setSpacing(2)
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.toolButton_2 = QtWidgets.QToolButton(self.tab_circle_stamp)
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap(":/remixicon/file-transfer-line.svg"),
                       QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.toolButton_2.setIcon(icon)
        self.toolButton_2.setIconSize(QtCore.QSize(30, 30))
        self.toolButton_2.setAutoRaise(True)
        self.toolButton_2.setObjectName("toolButton_2")
        self.horizontalLayout_3.addWidget(self.toolButton_2)
        self.toolButton = QtWidgets.QToolButton(self.tab_circle_stamp)
        icon1 = QtGui.QIcon()
        icon1.addPixmap(QtGui.QPixmap(":/remixicon/refresh-line.svg"),
                        QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.toolButton.setIcon(icon1)
        self.toolButton.setIconSize(QtCore.QSize(30, 30))
        self.toolButton.setAutoRaise(True)
        self.toolButton.setObjectName("toolButton")
        self.horizontalLayout_3.addWidget(self.toolButton)
        self.toolButton_3 = QtWidgets.QToolButton(self.tab_circle_stamp)
        icon2 = QtGui.QIcon()
        icon2.addPixmap(QtGui.QPixmap(":/remixicon/crop-line.svg"),
                        QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.toolButton_3.setIcon(icon2)
        self.toolButton_3.setIconSize(QtCore.QSize(30, 30))
        self.toolButton_3.setAutoRaise(True)
        self.toolButton_3.setObjectName("toolButton_3")
        self.horizontalLayout_3.addWidget(self.toolButton_3)
        self.toolButton_4 = QtWidgets.QToolButton(self.tab_circle_stamp)
        icon3 = QtGui.QIcon()
        icon3.addPixmap(QtGui.QPixmap(":/remixicon/drag-move-2-fill.svg"),
                        QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.toolButton_4.setIcon(icon3)
        self.toolButton_4.setIconSize(QtCore.QSize(30, 30))
        self.toolButton_4.setAutoRaise(True)
        self.toolButton_4.setObjectName("toolButton_4")
        self.horizontalLayout_3.addWidget(self.toolButton_4)
        spacerItem = QtWidgets.QSpacerItem(40, 20,
                                           QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_3.addItem(spacerItem)
        self.verticalLayout_4.addLayout(self.horizontalLayout_3)
        self.graphicsView_circle_stamp = GraphicsView(self.tab_circle_stamp)
        self.graphicsView_circle_stamp.setDragMode(
            QtWidgets.QGraphicsView.ScrollHandDrag)
        self.graphicsView_circle_stamp.setObjectName(
            "graphicsView_circle_stamp")
        self.verticalLayout_4.addWidget(self.graphicsView_circle_stamp)
        self.tabWidget.addTab(self.tab_circle_stamp, "")
        self.tab_sqare_stamp = QtWidgets.QWidget()
        self.tab_sqare_stamp.setObjectName("tab_sqare_stamp")
        self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.tab_sqare_stamp)
        self.verticalLayout_5.setContentsMargins(2, 2, 2, 2)
        self.verticalLayout_5.setSpacing(2)
        self.verticalLayout_5.setObjectName("verticalLayout_5")
        self.graphicsView_sqare_stamp = GraphicsView(self.tab_sqare_stamp)
        self.graphicsView_sqare_stamp.setObjectName("graphicsView_sqare_stamp")
        self.verticalLayout_5.addWidget(self.graphicsView_sqare_stamp)
        self.tabWidget.addTab(self.tab_sqare_stamp, "")
        self.verticalLayout_6.addWidget(self.tabWidget)
        self.dockWidget.setWidget(self.dockWidgetContents_3)
        MainWindow.addDockWidget(QtCore.Qt.DockWidgetArea(1), self.dockWidget)
        self.actionOpen = QtWidgets.QAction(MainWindow)
        icon4 = QtGui.QIcon()
        icon4.addPixmap(QtGui.QPixmap(":/remixicon/file-line.svg"),
                        QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.actionOpen.setIcon(icon4)
        self.actionOpen.setObjectName("actionOpen")
        self.actionSave = QtWidgets.QAction(MainWindow)
        icon5 = QtGui.QIcon()
        icon5.addPixmap(QtGui.QPixmap(":/remixicon/save-3-line.svg"),
                        QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.actionSave.setIcon(icon5)
        self.actionSave.setObjectName("actionSave")
        self.action_select_range = QtWidgets.QAction(MainWindow)
        self.action_select_range.setIcon(icon2)
        self.action_select_range.setObjectName("action_select_range")
        self.action_drag_item = QtWidgets.QAction(MainWindow)
        self.action_drag_item.setIcon(icon3)
        self.action_drag_item.setObjectName("action_drag_item")
        self.menuFile.addAction(self.actionOpen)
        self.menuFile.addAction(self.actionSave)
        self.menuEdit.addAction(self.action_select_range)
        self.menuEdit.addAction(self.action_drag_item)
        self.menubar.addAction(self.menuFile.menuAction())
        self.menubar.addAction(self.menuEdit.menuAction())
        self.toolBar.addAction(self.actionOpen)
        self.toolBar.addAction(self.actionSave)
        self.toolBar.addSeparator()
        self.toolBar.addAction(self.action_select_range)
        self.toolBar.addAction(self.action_drag_item)

        self.retranslateUi(MainWindow)
        self.tabWidget.setCurrentIndex(0)
        self.tableViewFile.clicked['QModelIndex'].connect(
            MainWindow.preview_pdf)
        self.graphicsView.customContextMenuRequested['QPoint'].connect(
            self.graphicsView.exec_context_menu)
        self.toolButton.clicked.connect(MainWindow.preview_circle_stamp)
        self.toolButton_2.clicked.connect(MainWindow.set_stamp)
        self.actionSave.triggered.connect(MainWindow.save_files)
        self.actionOpen.triggered.connect(MainWindow.open_files)
        self.action_drag_item.triggered.connect(
            self.graphicsView.setScrollHandDragMode)
        self.action_select_range.triggered.connect(
            self.graphicsView.setRubberBandDragMode)
        self.toolButton_3.clicked.connect(
            self.graphicsView_circle_stamp.setRubberBandDragMode)
        self.toolButton_4.clicked.connect(
            self.graphicsView_circle_stamp.setScrollHandDragMode)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)
예제 #15
0
class BuildFlowView(QWidget):

    def __init__(self, actions, status):
        super (BuildFlowView, self).__init__()
        self.actions = actions
        self.status = status

        layout = QHBoxLayout()
        self.view = GraphicsView(self.actions, self.status, self)
        self.scene = GraphicsScene(self.actions, self.status, self.view, self)

        self.view.setScene(self.scene)

        layout.addWidget(self.view)
        self.setLayout(layout)
        self.builders = {}
        self.initialize_view()

    def set_controller(self, controller):
        self.controller = controller
        self.actions.update_view.connect(self.update_view)

    def update_view(self):
        self.set_status(GEN_ID, BUILD_STATUS.ready)

    def initialize_view(self):
        #Add project generator box
        project_gen = BuildBox(self.scene,
                               GEN_POS,
                               GEN_NAME,
                               GEN_ID,
                               GEN_COLOR,
                               GEN_DESC,
                               GEN_RECT)

        #Add the synthesis box
        synthesis = BuildBox(self.scene,
                             SYNTHESIZER_POS,
                             SYNTHESIZER_NAME,
                             SYNTHESIZER_ID,
                             SYNTHESIZER_COLOR,
                             SYNTHESIZER_DESC,
                             SYNTHESIZER_RECT)

        #Add the translate box
        translate = BuildBox(self.scene,
                             TRANSLATOR_POS,
                             TRANSLATOR_NAME,
                             TRANSLATOR_ID,
                             TRANSLATOR_COLOR,
                             TRANSLATOR_DESC,
                             TRANSLATOR_RECT)
        #Add the map box
        mapper = BuildBox(self.scene,
                          MAP_POS,
                          MAP_NAME,
                          MAP_ID,
                          MAP_COLOR,
                          MAP_DESC,
                          MAP_RECT)

        #Add the par box
        par = BuildBox(self.scene,
                       PAR_POS,
                       PAR_NAME,
                       PAR_ID,
                       PAR_COLOR,
                       PAR_DESC,
                       PAR_RECT)


        #Add the bitgen box
        bitgen = BuildBox(self.scene,
                          BITGEN_POS,
                          BITGEN_NAME,
                          BITGEN_ID,
                          BITGEN_COLOR,
                          BITGEN_DESC,
                          BITGEN_RECT)

        downloader = BuildBox(self.scene,
                            DOWNLOADER_POS,
                            DOWNLOADER_NAME,
                            DOWNLOADER_ID,
                            DOWNLOADER_COLOR,
                            DOWNLOADER_DESC,
                            DOWNLOADER_RECT)



        #Add the trce box
        trce = BuildBox(self.scene,
                        TRACE_POS,
                        TRACE_NAME,
                        TRACE_ID,
                        TRACE_COLOR,
                        TRACE_DESC,
                        TRACE_RECT)

        #Add the link between generator and synthesis
        l = project_gen.add_link(synthesis, from_side = st.bottom, to_side = st.top)
        l.set_directed(True)

        #Add the link between synthesis and translate
        l = synthesis.add_link(translate)
        l.set_directed(True)
        #Add the link between translate and map
        l = translate.add_link(mapper)
        l.set_directed(True)
        #Add the link between map and par
        l = mapper.add_link(par)
        l.set_directed(True)
        #Add the link between par and bitgen
        l = par.add_link(bitgen)
        l.set_directed(True)
        #Add the link between par and trce
        l = par.add_link(trce)
        l.set_directed(True)

        #Add the downloader
        l = bitgen.add_link(downloader)
        l.set_directed(True)

        self.builders[GEN_ID] = project_gen
        self.builders[SYNTHESIZER_ID] = synthesis
        self.builders[TRANSLATOR_ID] = translate
        self.builders[MAP_ID] = mapper
        self.builders[PAR_ID] = par
        self.builders[BITGEN_ID] = bitgen
        self.builders[TRACE_ID] = trce
        self.builders[DOWNLOADER_ID] = downloader

    def reset_status(self):
        #self.builders[GEN_ID].set_status(BUILD_STATUS.unknown)
        self.set_status(GEN_ID, BUILD_STATUS.ready)
        self.builders[SYNTHESIZER_ID].set_status(BUILD_STATUS.unknown)
        self.builders[TRANSLATOR_ID].set_status(BUILD_STATUS.unknown)
        self.builders[MAP_ID].set_status(BUILD_STATUS.unknown)
        self.builders[PAR_ID].set_status(BUILD_STATUS.unknown)
        self.builders[BITGEN_ID].set_status(BUILD_STATUS.unknown)
        self.builders[TRACE_ID].set_status(BUILD_STATUS.unknown)
        self.builders[DOWNLOADER_ID].set_status(BUILD_STATUS.unknown)

    def set_status(self, builder, status):
        self.builders[builder].set_status(status)

    def get_status(self, builder):
        return self.builders[builder].get_status()

    def set_build_callback(self, build_cb):
        for builder in self.builders:
            self.builders[builder].set_build_callback(build_cb)
예제 #16
0
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(800, 800)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
        self.gridLayout.setContentsMargins(0, 0, 0, 0)
        self.gridLayout.setObjectName("gridLayout")
        self.horizontalLayout = QtWidgets.QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.toolButton = QtWidgets.QToolButton(self.centralwidget)
        self.toolButton.setIconSize(QtCore.QSize(32, 32))
        self.toolButton.setToolButtonStyle(QtCore.Qt.ToolButtonTextBesideIcon)
        self.toolButton.setAutoRaise(False)
        self.toolButton.setObjectName("toolButton")
        self.horizontalLayout.addWidget(self.toolButton)
        self.toolButton_2 = QtWidgets.QToolButton(self.centralwidget)
        self.toolButton_2.setIconSize(QtCore.QSize(32, 32))
        self.toolButton_2.setToolButtonStyle(
            QtCore.Qt.ToolButtonTextBesideIcon)
        self.toolButton_2.setAutoRaise(False)
        self.toolButton_2.setObjectName("toolButton_2")
        self.horizontalLayout.addWidget(self.toolButton_2)
        self.toolButton_3 = QtWidgets.QToolButton(self.centralwidget)
        self.toolButton_3.setObjectName("toolButton_3")
        self.horizontalLayout.addWidget(self.toolButton_3)
        spacerItem = QtWidgets.QSpacerItem(40, 20,
                                           QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout.addItem(spacerItem)
        self.gridLayout.addLayout(self.horizontalLayout, 0, 0, 1, 1)
        self.treeView = QtWidgets.QTreeView(self.centralwidget)
        self.treeView.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
        self.treeView.setAcceptDrops(True)
        self.treeView.setEditTriggers(
            QtWidgets.QAbstractItemView.AnyKeyPressed
            | QtWidgets.QAbstractItemView.DoubleClicked
            | QtWidgets.QAbstractItemView.EditKeyPressed
            | QtWidgets.QAbstractItemView.SelectedClicked)
        self.treeView.setDragEnabled(True)
        self.treeView.setDragDropMode(QtWidgets.QAbstractItemView.InternalMove)
        self.treeView.setAlternatingRowColors(True)
        self.treeView.setSelectionMode(
            QtWidgets.QAbstractItemView.ExtendedSelection)
        self.treeView.setSelectionBehavior(
            QtWidgets.QAbstractItemView.SelectItems)
        self.treeView.setExpandsOnDoubleClick(False)
        self.treeView.setObjectName("treeView")
        self.gridLayout.addWidget(self.treeView, 1, 0, 1, 1)
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 21))
        self.menubar.setObjectName("menubar")
        self.menuFile = QtWidgets.QMenu(self.menubar)
        self.menuFile.setObjectName("menuFile")
        self.menuImport = QtWidgets.QMenu(self.menuFile)
        self.menuImport.setObjectName("menuImport")
        self.menuExport = QtWidgets.QMenu(self.menuFile)
        self.menuExport.setObjectName("menuExport")
        self.menuEdit = QtWidgets.QMenu(self.menubar)
        self.menuEdit.setObjectName("menuEdit")
        self.menuSettings = QtWidgets.QMenu(self.menubar)
        self.menuSettings.setObjectName("menuSettings")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)
        self.dockWidget = QtWidgets.QDockWidget(MainWindow)
        self.dockWidget.setObjectName("dockWidget")
        self.dockWidgetContents = QtWidgets.QWidget()
        self.dockWidgetContents.setObjectName("dockWidgetContents")
        self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.dockWidgetContents)
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.graphicsView = GraphicsView(self.dockWidgetContents)
        self.graphicsView.setObjectName("graphicsView")
        self.verticalLayout_2.addWidget(self.graphicsView)
        self.dockWidget.setWidget(self.dockWidgetContents)
        MainWindow.addDockWidget(QtCore.Qt.DockWidgetArea(2), self.dockWidget)
        self.dockWidget_2 = QtWidgets.QDockWidget(MainWindow)
        self.dockWidget_2.setObjectName("dockWidget_2")
        self.dockWidgetContents_2 = QtWidgets.QWidget()
        self.dockWidgetContents_2.setObjectName("dockWidgetContents_2")
        self.gridLayout_2 = QtWidgets.QGridLayout(self.dockWidgetContents_2)
        self.gridLayout_2.setObjectName("gridLayout_2")
        self.label_2 = QtWidgets.QLabel(self.dockWidgetContents_2)
        self.label_2.setObjectName("label_2")
        self.gridLayout_2.addWidget(self.label_2, 2, 0, 1, 1)
        spacerItem1 = QtWidgets.QSpacerItem(20, 40,
                                            QtWidgets.QSizePolicy.Minimum,
                                            QtWidgets.QSizePolicy.Expanding)
        self.gridLayout_2.addItem(spacerItem1, 5, 0, 1, 1)
        self.label = QtWidgets.QLabel(self.dockWidgetContents_2)
        self.label.setObjectName("label")
        self.gridLayout_2.addWidget(self.label, 0, 0, 1, 1)
        self.toolButton_4 = QtWidgets.QToolButton(self.dockWidgetContents_2)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum,
                                           QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.toolButton_4.sizePolicy().hasHeightForWidth())
        self.toolButton_4.setSizePolicy(sizePolicy)
        self.toolButton_4.setObjectName("toolButton_4")
        self.gridLayout_2.addWidget(self.toolButton_4, 4, 1, 1, 1)
        self.lineEdit = QtWidgets.QLineEdit(self.dockWidgetContents_2)
        self.lineEdit.setObjectName("lineEdit")
        self.gridLayout_2.addWidget(self.lineEdit, 2, 1, 1, 1)
        self.lineEdit_2 = QtWidgets.QLineEdit(self.dockWidgetContents_2)
        self.lineEdit_2.setObjectName("lineEdit_2")
        self.gridLayout_2.addWidget(self.lineEdit_2, 3, 1, 1, 1)
        self.label_3 = QtWidgets.QLabel(self.dockWidgetContents_2)
        self.label_3.setObjectName("label_3")
        self.gridLayout_2.addWidget(self.label_3, 3, 0, 1, 1)
        self.comboBox = QtWidgets.QComboBox(self.dockWidgetContents_2)
        self.comboBox.setObjectName("comboBox")
        self.comboBox.addItem("")
        self.gridLayout_2.addWidget(self.comboBox, 0, 1, 1, 1)
        self.label_4 = QtWidgets.QLabel(self.dockWidgetContents_2)
        self.label_4.setObjectName("label_4")
        self.gridLayout_2.addWidget(self.label_4, 1, 0, 1, 1)
        self.comboBox_2 = QtWidgets.QComboBox(self.dockWidgetContents_2)
        self.comboBox_2.setObjectName("comboBox_2")
        self.comboBox_2.addItem("")
        self.comboBox_2.addItem("")
        self.gridLayout_2.addWidget(self.comboBox_2, 1, 1, 1, 1)
        self.dockWidget_2.setWidget(self.dockWidgetContents_2)
        MainWindow.addDockWidget(QtCore.Qt.DockWidgetArea(2),
                                 self.dockWidget_2)
        self.actionSave = QtWidgets.QAction(MainWindow)
        self.actionSave.setObjectName("actionSave")
        self.actionAppendChild = QtWidgets.QAction(MainWindow)
        self.actionAppendChild.setObjectName("actionAppendChild")
        self.actionDelete = QtWidgets.QAction(MainWindow)
        self.actionDelete.setObjectName("actionDelete")
        self.actionSettings = QtWidgets.QAction(MainWindow)
        self.actionSettings.setObjectName("actionSettings")
        self.actionImportJSON = QtWidgets.QAction(MainWindow)
        self.actionImportJSON.setObjectName("actionImportJSON")
        self.actionImportCSV = QtWidgets.QAction(MainWindow)
        self.actionImportCSV.setObjectName("actionImportCSV")
        self.actionExportJSON = QtWidgets.QAction(MainWindow)
        self.actionExportJSON.setObjectName("actionExportJSON")
        self.actionExportCSV = QtWidgets.QAction(MainWindow)
        self.actionExportCSV.setObjectName("actionExportCSV")
        self.actionOpen = QtWidgets.QAction(MainWindow)
        self.actionOpen.setObjectName("actionOpen")
        self.actionImpoertImage = QtWidgets.QAction(MainWindow)
        self.actionImpoertImage.setObjectName("actionImpoertImage")
        self.menuImport.addAction(self.actionImportJSON)
        self.menuImport.addAction(self.actionImportCSV)
        self.menuImport.addAction(self.actionImpoertImage)
        self.menuExport.addAction(self.actionExportJSON)
        self.menuExport.addAction(self.actionExportCSV)
        self.menuFile.addAction(self.actionOpen)
        self.menuFile.addAction(self.actionSave)
        self.menuFile.addAction(self.menuImport.menuAction())
        self.menuFile.addAction(self.menuExport.menuAction())
        self.menuEdit.addAction(self.actionAppendChild)
        self.menuEdit.addAction(self.actionDelete)
        self.menuSettings.addAction(self.actionSettings)
        self.menubar.addAction(self.menuFile.menuAction())
        self.menubar.addAction(self.menuEdit.menuAction())
        self.menubar.addAction(self.menuSettings.menuAction())

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)