Main Page | Packages | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | Related Pages

bar.py

00001 #!/usr/local/bin/python
00002 #
00003 #                               Copyright 2004
00004 #                                     by
00005 #                        The Board of Trustees of the
00006 #                     Leland Stanford Junior University.
00007 #                            All rights reserved.
00008 #
00009 
00010 
00011 __facility__ = "Trigger"
00012 __abstract__ = "Bar widget for trigger display"
00013 __author__   = "Martin Kocian, SLAC"
00014 __date__     = ("$Date: 2005/05/16 18:30:35 $").split(' ')[1]
00015 __version__  = "$Revision: 2.1 $"
00016 __release__  = "$Name: R04-12-00 $"
00017 __credits__  = "SLAC"
00018 
00019 from qt import *
00020 import sys
00021 
00022 class bar (QWidget):
00023 
00024         def __init__(self,parent= None,name = None,fl = 0):
00025                 QWidget.__init__(self,parent,name,fl)
00026         self.__val=0
00027         self.__rval=0
00028                 self.__fullscale=10
00029                 self.__color=QColor("green")
00030         self.__orientation=0 # vertical
00031         self.__minorab=0
00032         self.__minorcolor=QColor("yellow")
00033         self.__minorlevel=0
00034         self.__majorab=0
00035         self.__majorcolor=QColor("red")
00036         self.__majorlevel=0
00037         if not name:
00038             self.setName("bar")
00039 
00040 
00041         self.languageChange()
00042         
00043         self.clearWState(Qt.WState_Polished)
00044 
00045 
00046     def languageChange(self):
00047         self.setCaption(self.__tr("Form1"))
00048 
00049 
00050                     
00051     def __tr(self,s,c = None):
00052         return qApp.translate("bar",s,c)
00053     def setColor(self,col):
00054         self.__color=QColor(col)
00055         self.update()
00056         def setMinor(self,level,abovebelow=1,color="yellow"):
00057         #ab=0 is off ab=1 is alarm above level, -1 is alarm below level
00058         self.__minorlevel=level
00059         self.__minorab=abovebelow
00060         self.__minorcolor=QColor(color)
00061         def setMajor(self,level,abovebelow=1,color="red"):
00062         self.__majorlevel=level
00063         self.__majorab=abovebelow
00064         self.__majorcolor=QColor(color)
00065         def setScale(self,scale):
00066         self.__fullscale=scale
00067                 self.update()
00068         def setOrientation(self,st):
00069         if st=="vertical":
00070             self.__orientation=0
00071         else:
00072             self.__orientation=1
00073         def getOrientation():
00074         return self.__orientation
00075 
00076     def displayValue(self,a0):
00077                 self.__rval=a0
00078         if a0>=0 and a0 <=self.__fullscale:
00079             self.__val=a0
00080                 elif a0<0:
00081             self.__val=0
00082         else:
00083             self.__val=self.__fullscale
00084                 self.update()
00085 
00086                 
00087     def paintEvent(self,pe):
00088         try:
00089             r= pe.rect()
00090             painter=QPainter()
00091             painter.begin( self )
00092             painter.setBrush(self.paletteBackgroundColor())
00093             pen=QPen()
00094                         pen.setColor(QColor("black"))
00095                         pen.setWidth(1)
00096                         painter.setPen(pen)
00097                         ar=QPointArray(4)
00098                 ar.setPoint(0, 0,0 )
00099                 ar.setPoint(1, self.size().width()-1,0)
00100                 ar.setPoint(2,self.size().width()-1, self.size().height()-1)
00101             ar.setPoint(3,0,self.size().height()-1)
00102             painter.drawPolygon(ar)                      
00103             brush=QBrush(self.__color )
00104             if self.__minorab==1 and self.__rval>self.__minorlevel: brush=QBrush(self.__minorcolor)
00105             if self.__minorab==-1 and self.__rval<self.__minorlevel: brush=QBrush(self.__minorcolor)
00106             if self.__majorab==1 and self.__rval>self.__majorlevel: brush=QBrush(self.__majorcolor)
00107             if self.__majorab==-1 and self.__rval<self.__majorlevel: brush=QBrush(self.__majorcolor)
00108             
00109             painter.setBrush( brush )
00110             painter.setPen(self.paletteBackgroundColor())
00111                 hval=float(self.__val)/self.__fullscale*(self.size().width()-2)
00112             if hval<0: hval=0
00113                         vval=float(self.__val)/self.__fullscale*(self.size().height()-2)
00114             if vval<0:vval=0
00115             if self.__orientation==0:
00116                 painter.drawRect( 1,self.size().height()-vval-1,
00117                           self.size().width()-2,vval )      
00118             else:
00119                 painter.drawRect(1,1,hval,self.size().height()-2)
00120         except :
00121             print "Unexpected error:", sys.exc_info()[1]
00122 
00123         
00124 
00125 if __name__ == "__main__":
00126         a = QApplication(sys.argv)
00127         QObject.connect(a,SIGNAL("lastWindowClosed()"),a,SLOT("quit()"))
00128         w = bar()
00129         a.setMainWidget(w)
00130         w.show()
00131         a.exec_loop() 

Generated on Fri Jul 21 13:26:26 2006 for LATTE R04-12-00 by doxygen 1.4.3