Esempio n. 1
0
    def __init__(self, display, splitter):
        QtWidgets.QWidget.__init__(self)

        self.display = display
        display.sigLayerChanged.connect(self.toggleDataChanged)
        display.sigNewLayer.connect(self.toggleNewData)
        self.setMinimumHeight(30)

        self.splitter = splitter

        self._collect = False
        self._activeWidgets = []

        # LAYOUT
        layout = QtWidgets.QVBoxLayout()
        layout.setAlignment(QtCore.Qt.AlignTop)
        # setMargin removed. obsolete, doesn't do anything, not even in PyQt4
        self.setLayout(layout)
        self._hl = QtWidgets.QHBoxLayout()
        layout.addLayout(self._hl)

        # BUTTON: show/hide 'Scripts'
        self.btn_scripts = QtWidgets.QRadioButton('Scripts')
        f = self.btn_scripts.font()
        f.setBold(True)
        self.btn_scripts.setFont(f)
        self.btn_scripts.clicked.connect(self._uncheckConsole)
        self.btn_scripts.clicked.connect(self._toggleScriptsFirstTime)
        self.btn_scripts.clicked.connect(self.updateSize)
        self._hl.addWidget(self.btn_scripts)

        # BUTTON: show/hide 'Console'
        self.btn_console = QtWidgets.QRadioButton('Console')
        f = self.btn_console.font()
        f.setBold(True)
        self.btn_console.setFont(f)
        self.btn_console.clicked.connect(self._uncheckScripts)
        self.btn_console.clicked.connect(self._toggleConsoleFirstTime)
        self.btn_console.clicked.connect(self.updateSize)

        self._hl.addWidget(self.btn_console)

        g = QtWidgets.QButtonGroup(self)
        g.setExclusive(False)
        g.addButton(self.btn_scripts)
        g.addButton(self.btn_console)

        self.splitter.setStretchFactor(0, 0)

        self.cb_run_on = QtWidgets.QComboBox()
        self.cb_run_on.addItems(['-', 'New Data', 'Data Changed'])

        self.tabs = FwTabWidget()
        self.tabs.hide()
        self.tabs.setTabsAddable(True)
        self.tabs.setTabsClosable(True)
        self.tabs.setTabsRenamable(True)
Esempio n. 2
0
 def createWidget(self, parent):
     return FwTabWidget(parent)
Esempio n. 3
0
    def __init__(self, display, splitter):
        QtGui.QWidget.__init__(self)

        self.display = display
        display.sigLayerChanged.connect(self.toggleDataChanged)
        display.sigNewLayer.connect(self.toggleNewData)

        self.splitter = splitter

        refreshR = 20

        self._collect = False
        self._activeWidgets = []
        #BUTTON: OF/OFF
        self.btn_show = QtGui.QRadioButton('Console')
        f = self.btn_show.font()
        f.setBold(True)
        self.btn_show.setFont(f)
        self.btn_show.clicked.connect(self._toggleShow)
        #COMBOBOX: IMPORT
        self.combo_import = QtGui.QComboBox()
        self.combo_import.addItems(('<import>', 'from file'))
        self.combo_import.addItems(
            #don't show '.py' and hide __init__.py
            [
                x[:-3] for x in SPRIPT_PATH.listdir()
                if (x[0] != '_' and x.endswith('.py'))
            ])
        self.combo_import.currentIndexChanged.connect(self._importScript)
        #BUTTON: COLLECT
        self.btn_collect = QtGui.QPushButton('Collect')
        self.btn_collect.setToolTip(
            'click on all tool parameters you want to change during the batch process'
        )
        self.btn_collect.setCheckable(True)
        self.btn_collect.clicked.connect(self.collectWidgets)
        #TABWIDGET: SCRIPT
        self.tabs = FwTabWidget()
        self.tabs.hide()
        self.tabs.setTabsAddable(True)
        self.tabs.setTabsClosable(True)
        self.tabs.setTabsRenamable(True)

        self.tabs.defaultTabWidget = lambda: ScriptTab(self, refreshR)
        self.tabs.addEmptyTab('New')
        #BUTTON: RUN AT NEW INPUT
        self.label_run_on = QtGui.QLabel('Activate on')
        self.cb_run_on = QtGui.QComboBox()
        self.cb_run_on.addItems(['-', 'New Data', 'Data Changed'])

        #SPINBOX REFRESHRATE
        self.label_refresh = QtGui.QLabel('Refresh rate:')
        self.sb_refreshrate = QtGui.QSpinBox()
        self.sb_refreshrate.setSuffix(" Hz")
        self.sb_refreshrate.setMinimum(0)
        self.sb_refreshrate.setMaximum(100)
        self.sb_refreshrate.setValue(refreshR)
        self.sb_refreshrate.valueChanged.connect(
            lambda hz: self.tabs.currentWidget().thread.setRefreshrate(hz))
        #BUTTON: RUN
        self.btn_run_now = QtGui.QPushButton('Run')
        self.btn_run_now.setCheckable(True)
        self.btn_run_now.clicked.connect(self.toggle)
        #LAYOUT
        layout = QtGui.QVBoxLayout()
        layout.setAlignment(QtCore.Qt.AlignTop)
        layout.setMargin(0)
        self.setLayout(layout)
        #top layout
        hl = QtGui.QHBoxLayout()
        hl.addWidget(self.btn_show)
        hl.addWidget(self.btn_collect)
        #fill layout
        layout.addLayout(hl)
        layout.addWidget(self.combo_import)
        layout.addWidget(self.tabs)

        hl2 = QtGui.QHBoxLayout()
        hl2.addWidget(self.label_run_on)
        hl2.addWidget(self.cb_run_on)
        hl2.addWidget(self.label_refresh)
        hl2.addWidget(self.sb_refreshrate)
        hl2.insertStretch(1, 0)
        hl2.insertStretch(2, 0)
        layout.addLayout(hl2)
        layout.addWidget(self.btn_run_now)

        self._toggleShow(False)  #automation disabled by default