def __init__(self, cmdargs, text=None, icon=None, parent=None, interactive=True): '''creator :param cmdargs: (list<str> or str) A list of strings to be passed to :meth:`subprocess.Popen` for launching the external application. It can also be a single string containing a command. See :meth:`setCmdArgs` :param text: (str) see :class:`Qt.QAction` :param icon: (QIcon or any other object that can be passed to QIcon creator) see :class:`Qt.QAction` :param parent: (QObject) The parent object ''' if isinstance(cmdargs, (basestring, Qt.QString)): import shlex cmdargs = shlex.split(str(cmdargs)) self.path = os.path.realpath(cmdargs and cmdargs[0] or '') if text is None: text = os.path.basename(cmdargs and cmdargs[0] or '') if icon is None: icon = Qt.QIcon.fromTheme(self.DEFAULT_ICON_NAME) elif isinstance(icon, basestring): tmp = Qt.QIcon.fromTheme(icon) if not tmp.isNull(): icon = tmp Qt.QAction.__init__(self, Qt.QIcon(icon), text, parent) BaseConfigurableClass.__init__(self) self.interactive = interactive self._process = [] self.setCmdArgs(cmdargs) self.triggered.connect(self.actionTriggered) self.setToolTip("Launches %s (external application)" % text) self.registerConfigProperty(self.cmdArgs, self.setCmdArgs, 'cmdArgs')
def __init__(self, parent=None, period=0, text="Forced read", autoconnect=True): BaseConfigurableClass.__init__(self) QtGui.QWidgetAction.__init__(self, parent) # defining the widget self._w = QtGui.QWidget() self._w.setLayout(QtGui.QHBoxLayout()) tt = "Period between forced readings.\nSet to 0 to disable" self._w.setToolTip(tt) self._label = QtGui.QLabel(text) self._w.layout().addWidget(self._label) self._sb = QtGui.QSpinBox() self._w.layout().addWidget(self._sb) self._sb.setRange(0, 604800000) self._sb.setValue(period) self._sb.setSingleStep(500) self._sb.setSuffix(" ms") self._sb.setSpecialValueText("disabled") self._autoconnect = autoconnect self.setDefaultWidget(self._w) # register config properties self.registerConfigProperty(self.period, self.setPeriod, "period") self.registerConfigProperty(self.autoconnect, self.setAutoconnect, "autoconnect") # internal conections self._sb.valueChanged[int].connect(self._onValueChanged)
def __init__(self, parent): Qt.QDialog.__init__(self, parent) BaseConfigurableClass.__init__(self) self._tabwidget = Qt.QTabWidget() self.setModal(True) self.externalAppsPage = None self.setLayout(Qt.QVBoxLayout()) self.layout().addWidget(self._tabwidget)
def __init__(self, manager, scrollFactor=0.2, toolbar_id=None): ToggleTool.__init__(self, manager, title='Auto Scroll', icon=None, tip='Force X scale to always show the last value', toolbar_id=toolbar_id) BaseConfigurableClass.__init__(self) self.scrollFactor = scrollFactor self.registerConfigProperty(self.action.isChecked, self.setChecked, 'actionChecked')
def __init__(self, manager, scrollFactor=0.2, toolbar_id=None): ToggleTool.__init__(self, manager, title='Auto Scroll', icon=None, tip='Force X scale to always show the last value', toolbar_id=toolbar_id) BaseConfigurableClass.__init__(self) self.scrollFactor = scrollFactor self.registerConfigProperty(self.action.isChecked, self.action.setChecked, 'actionChecked')
def __init__(self, manager, axis, toolbar_id=None): ToggleTool.__init__(self, manager, title='Auto-scale %s axis' % axis, icon=None, tip='Auto-scale %s axis when data changes', toolbar_id=toolbar_id) BaseConfigurableClass.__init__(self) self.axis = axis self.registerConfigProperty(self.action.isChecked, self.setChecked, 'actionChecked')
def __init__(self, parent=None, **kwargs): BaseConfigurableClass.__init__(self) QtGui.QWidgetAction.__init__(self, parent) self._cb = QtGui.QCheckBox() self._cb.setText("Show legend") self.setDefaultWidget(self._cb) self.registerConfigProperty( self._cb.isChecked, self._cb.setChecked, "checked" ) # TODO: register config prop for legend position self._cb.toggled.connect(self._onToggled) self._legend = None self._legend_kwargs = kwargs
def __init__(self, parent=None): BaseConfigurableClass.__init__(self) Qt.QWidgetAction.__init__(self, parent) self._cb = Qt.QCheckBox() self._cb.setText("Data Inspector") self._cb.toggled.connect(self._onToggled) self.setDefaultWidget(self._cb) self.plot_item = None self.enable = False self.data_inspector = DataInspectorLine() self.registerConfigProperty(self.isChecked, self.setChecked, "checked")
def __init__(self, parent=None, itemClass=None, showX=True): BaseConfigurableClass.__init__(self) Qt.QAction.__init__(self, "Model selection", parent) self.triggered.connect(self._onTriggered) self.plot_item = None self.legend = None self._curveColors = None if itemClass is None: itemClass = TaurusPlotDataItem self.itemClass = itemClass self._showX = showX self.registerConfigProperty(self._getCurveInfo, self._restoreCurvesFromInfo, "CurveInfo")
def __init__(self, parent=None, **kwargs): if Qt.QT_VERSION < 0x050000: # Workaround for issue when using super with pyqt<5 BaseConfigurableClass.__init__(self) PlotWidget.__init__(self, parent=parent, **kwargs) else: super(TaurusPlot, self).__init__(parent=None, **kwargs) # set up cyclic color generator self._curveColors = LoopList(CURVE_COLORS) self._curveColors.setCurrentIndex(-1) # add save & retrieve configuration actions menu = self.getPlotItem().getViewBox().menu saveConfigAction = QtGui.QAction("Save configuration", menu) saveConfigAction.triggered.connect(self.saveConfigFile) menu.addAction(saveConfigAction) loadConfigAction = QtGui.QAction("Retrieve saved configuration", menu) loadConfigAction.triggered.connect(self.loadConfigFile) menu.addAction(loadConfigAction) self.registerConfigProperty(self._getState, self.restoreState, "state") # add legend tool legend_tool = PlotLegendTool(self) legend_tool.attachToPlotItem(self.getPlotItem()) # add model chooser self._model_chooser_tool = TaurusXYModelChooserTool(self) self._model_chooser_tool.attachToPlotItem(self.getPlotItem(), self, self._curveColors) # add Y2 axis self._y2 = Y2ViewBox() self._y2.attachToPlotItem(self.getPlotItem()) # add plot configuration dialog cprop_tool = CurvesPropertiesTool(self) cprop_tool.attachToPlotItem(self.getPlotItem(), y2=self._y2) # add a data inspector inspector_tool = DataInspectorTool(self) inspector_tool.attachToPlotItem(self.getPlotItem()) # Register config properties self.registerConfigDelegate(self._y2, "Y2Axis") self.registerConfigDelegate(legend_tool, "legend") self.registerConfigDelegate(inspector_tool, "inspector")
def __init__(self, parent=None): BaseConfigurableClass.__init__(self) QtGui.QAction.__init__(self, "Plot configuration", parent) self.triggered.connect(self._onTriggered) self.plot_item = None self.Y2Axis = None self.registerConfigProperty( self._getCurveAppearanceProperties, self._setCurveAppearanceProperties, "CurveProperties", ) self.registerConfigProperty( self._getBackgroundColor, self._setBackgroundColor, "PlotBackground", )
def __init__(self, parent=None): Qt.QTreeView.__init__(self, parent) BaseConfigurableClass.__init__(self) self._idIndexDict = {} self.setSelectionBehavior(Qt.QTreeView.SelectRows) self.setSelectionMode(Qt.QTreeView.SingleSelection) self.setRootIsDecorated(False) # self.setItemsExpandable(False) self.setDragEnabled(True) self.setAcceptDrops(True) self.setTabKeyNavigation(True) self.setEditTriggers(Qt.QAbstractItemView.EditKeyPressed | Qt.QAbstractItemView.CurrentChanged) self.setDropIndicatorShown(True) self.deleteAction = Qt.QAction( Qt.QIcon.fromTheme("list-remove"), "Remove macro", self) self.deleteAction.triggered.connect(self.deleteMacro) self.deleteAction.setToolTip( "Clicking this button will remove current macro.") self.moveUpAction = Qt.QAction(Qt.QIcon.fromTheme("go-up"), "Move up", self) self.moveUpAction.triggered.connect(self.upMacro) self.moveUpAction.setToolTip( "Clicking this button will move current macro up.") self.moveDownAction = Qt.QAction( Qt.QIcon.fromTheme("go-down"), "Move down", self) self.moveDownAction.triggered.connect(self.downMacro) self.moveDownAction.setToolTip( "Clicking this button will move current macro down.") self.moveLeftAction = Qt.QAction( Qt.QIcon.fromTheme("go-previous"), "Move left", self) self.moveLeftAction.triggered.connect(self.leftMacro) self.moveLeftAction.setToolTip( "Clicking this button will move current macro to the left.") self.moveRightAction = Qt.QAction( Qt.QIcon.fromTheme("go-next"), "Move right", self) self.moveRightAction.triggered.connect(self.rightMacro) self.moveRightAction.setToolTip( "Clicking this button will move current macro to the right.")
def __init__(self, parent=None): Qt.QTreeView.__init__(self, parent) BaseConfigurableClass.__init__(self) self._idIndexDict = {} self.setSelectionBehavior(Qt.QTreeView.SelectRows) self.setSelectionMode(Qt.QTreeView.SingleSelection) self.setRootIsDecorated(False) # self.setItemsExpandable(False) self.setDragEnabled(True) self.setAcceptDrops(True) self.setTabKeyNavigation(True) self.setEditTriggers(Qt.QAbstractItemView.EditKeyPressed | Qt.QAbstractItemView.CurrentChanged) self.setDropIndicatorShown(True) self.deleteAction = Qt.QAction( getThemeIcon("list-remove"), "Remove macro", self) self.deleteAction.triggered.connect(self.deleteMacro) self.deleteAction.setToolTip( "Clicking this button will remove current macro.") self.moveUpAction = Qt.QAction(getThemeIcon("go-up"), "Move up", self) self.moveUpAction.triggered.connect(self.upMacro) self.moveUpAction.setToolTip( "Clicking this button will move current macro up.") self.moveDownAction = Qt.QAction( getThemeIcon("go-down"), "Move down", self) self.moveDownAction.triggered.connect(self.downMacro) self.moveDownAction.setToolTip( "Clicking this button will move current macro down.") self.moveLeftAction = Qt.QAction( getThemeIcon("go-previous"), "Move left", self) self.moveLeftAction.triggered.connect(self.leftMacro) self.moveLeftAction.setToolTip( "Clicking this button will move current macro to the left.") self.moveRightAction = Qt.QAction( getThemeIcon("go-next"), "Move right", self) self.moveRightAction.triggered.connect(self.rightMacro) self.moveRightAction.setToolTip( "Clicking this button will move current macro to the right.")
def __init__( self, parent=None, period=0, text="Change forced read period...", autoconnect=True, ): BaseConfigurableClass.__init__(self) QtGui.QAction.__init__(self, text, parent) tt = "Period between forced readings.\nSet to 0 to disable" self.setToolTip(tt) self._period = period self._autoconnect = autoconnect # register config properties self.registerConfigProperty(self.period, self.setPeriod, "period") self.registerConfigProperty( self.autoconnect, self.setAutoconnect, "autoconnect" ) # internal conections self.triggered.connect(self._onTriggered)
def __init__(self, cmdargs, text=None, icon=None, parent=None, interactive=True): '''creator :param cmdargs: (list<str> or str) A list of strings to be passed to :meth:`subprocess.Popen` for launching the external application. It can also be a single string containing a command. See :meth:`setCmdArgs` :param text: (str) see :class:`Qt.QAction` :param icon: (QIcon or any other object that can be passed to QIcon creator) see :class:`Qt.QAction` :param parent: (QObject) The parent object ''' if isinstance(cmdargs, string_types): import shlex cmdargs = shlex.split(str(cmdargs)) self.path = os.path.realpath(cmdargs and cmdargs[0] or '') if text is None: text = os.path.basename(cmdargs and cmdargs[0] or '') if icon is None: icon = Qt.QIcon.fromTheme(self.DEFAULT_ICON_NAME) elif isinstance(icon, string_types): tmp = Qt.QIcon.fromTheme(icon) if not tmp.isNull(): icon = tmp Qt.QAction.__init__(self, Qt.QIcon(icon), text, parent) BaseConfigurableClass.__init__(self) self.interactive = interactive self._process = [] self.setCmdArgs(cmdargs) self.triggered.connect(partial(self.actionTriggered, args=None)) self.setToolTip("Launches %s (external application)" % text) self.registerConfigProperty(self.cmdArgs, self.setCmdArgs, 'cmdArgs')
def __init__(self, parent=None, **kwargs): if Qt.QT_VERSION < 0x050000: # Workaround for issue when using super with pyqt<5 BaseConfigurableClass.__init__(self) PlotWidget.__init__(self, parent=parent, **kwargs) else: super(TaurusTrend, self).__init__(parent=parent, **kwargs) # Compose with a Logger self._logger = Logger(name=self.__class__.__name__) self.debug = self._logger.debug self.info = self._logger.info self.warning = self._logger.warning self.error = self._logger.error # set up cyclic color generator self._curveColors = LoopList(CURVE_COLORS) self._curveColors.setCurrentIndex(-1) plot_item = self.getPlotItem() menu = plot_item.getViewBox().menu # add save & retrieve configuration actions saveConfigAction = QtGui.QAction("Save configuration", menu) saveConfigAction.triggered.connect(self.saveConfigFile) menu.addAction(saveConfigAction) loadConfigAction = QtGui.QAction("Retrieve saved configuration", menu) loadConfigAction.triggered.connect(self.loadConfigFile) menu.addAction(loadConfigAction) self.registerConfigProperty(self._getState, self.restoreState, "state") # add legend tool legend_tool = PlotLegendTool(self) legend_tool.attachToPlotItem(plot_item) # add model chooser self._model_chooser_tool = TaurusXYModelChooserTool( self, itemClass=TaurusTrendSet, showX=False) self._model_chooser_tool.attachToPlotItem(self.getPlotItem(), self, self._curveColors) # add Y2 axis self._y2 = Y2ViewBox() self._y2.attachToPlotItem(plot_item) # Add time X axis axis = DateAxisItem(orientation="bottom") axis.attachToPlotItem(plot_item) # add plot configuration dialog self._cprop_tool = CurvesPropertiesTool(self) self._cprop_tool.attachToPlotItem(plot_item, y2=self._y2) # add data inspector widget inspector_tool = DataInspectorTool(self) inspector_tool.attachToPlotItem(self.getPlotItem()) # add force read tool self._fr_tool = ForcedReadTool(self) self._fr_tool.attachToPlotItem(self.getPlotItem()) # Add the auto-pan ("oscilloscope mode") tool self._autopan = XAutoPanTool() self._autopan.attachToPlotItem(self.getPlotItem()) # Register config properties self.registerConfigDelegate(self._model_chooser_tool, "XYmodelchooser") # self.registerConfigDelegate(self._y2, "Y2Axis") self.registerConfigDelegate(self._cprop_tool, "CurvePropertiesTool") self.registerConfigDelegate(legend_tool, "legend") self.registerConfigDelegate(self._fr_tool, "forceread") self.registerConfigDelegate(inspector_tool, "inspector")