Source code for taurus.qt.qtgui.plot.monitor

#!/usr/bin/env python

#############################################################################
##
## This file is part of Taurus
## 
## http://taurus-scada.org
##
## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
## 
## Taurus is free software: you can redistribute it and/or modify
## it under the terms of the GNU Lesser General Public License as published by
## the Free Software Foundation, either version 3 of the License, or
## (at your option) any later version.
## 
## Taurus is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
## GNU Lesser General Public License for more details.
## 
## You should have received a copy of the GNU Lesser General Public License
## along with Taurus.  If not, see <http://www.gnu.org/licenses/>.
##
#############################################################################

"""
monitor.py: Specialized mini-trend widget to monitor some scalar value
"""

from taurus.external.qt import Qt
from taurus.qt.qtgui.plot import TaurusTrend


[docs]class TaurusMonitorTiny(TaurusTrend): ''' A specialised :class:`TaurusTrend` widget for monitoring scalar values and show their evolution over time. It is designed to be small (e.g. to fit in a toolbar). It is inspired by the SysMon applet in old KDE3. .. seealso:: :class:`TaurusTrend`, :ref:`TaurusTrend User's Interface Guide <trend_ui>`, :ref:`The TaurusTrend coding examples <examples_taurustrend>` ''' DEFAULT_MAX_BUFFER_SIZE = 8192 #(8K events)) def __init__(self, parent = None, designMode = False): TaurusTrend.__init__(self, parent = parent, designMode = designMode) self.setXIsTime(True) self.setAxisScale(self.xBottom, 0, 5*60) #set a 5 minutes range by default self.setXDynScale(True) self.setCanvasBackground(Qt.Qt.black) self.showLegend(False) self.enableAxis(self.xBottom, False) self.enableAxis(self.xTop, False) self.enableAxis(self.yLeft, False) self.enableAxis(self.yRight, False) self.setAllowZoomers(False) self.toggleDataInspectorMode(enable=True) self.setMaximumSize(60,60)
[docs] def autoShowYAxes(self): '''reimplemented to avoid auto-enabling of axes''' pass
[docs] def event(self, event): # if event.type() == Qt.QEvent.ToolTip: print "!!!!!!!", event.type() if event.type() == Qt.QEvent.ToolTip: # info = self.getMonitorInfo() # self.setToolTip(info) event.accept() return TaurusTrend.event(self, event)
# def getMonitorInfo(self): # time = datetime.datetime.now().isoformat() ## for # return time # #print "!!!!!!!!!", event.type() # #def mouse if __name__ == "__main__": import sys app = Qt.QApplication(sys.argv) args=sys.argv[1:] KLASS = TaurusTrend SHOW = True EXPORT = None CONFIG = None MODELS = [] XISTIME = True ## MANAGING ARGUMENTS #---------------------------------------------- for a in args: if a == "-xt": #argument "-xt" means interprete X values as time XISTIME = True elif a == "-xe": #argument "-xe" means interprete X values as events XISTIME = False elif a.startswith('-config='): #argument "-conf=FILENAME" launches TaurusTrend/Plot with a predefined config file CONFIG = a.split('=')[-1] elif a.startswith('-'): #whatever other argument starting by "-" print "\n Usage: \n%s [-xe|-xt] [-config=configfilename] [model1 [model2] ...]\n"%sys.argv[0] sys.exit(1) else: #anything that is not a parameter is interpreted as a model MODELS.append(a) #---------------------------------------------- form = TaurusMonitorTiny() form.setXIsTime(XISTIME) if CONFIG is not None: form.loadConfig(CONFIG) #form.setDefaultCurvesTitle("<dev_full_name><[trend_index]>") if MODELS: form.setModel(MODELS) if SHOW: form.show() #if no models are passed, show the data import dialog if len(MODELS) == 0 and CONFIG is None: form.showDataImportDlg() sys.exit(app.exec_())