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)
def createWidget(self, parent): return FwTabWidget(parent)
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