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

barw.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 with scale for trigger display"
00013 __author__   = "Martin Kocian, SLAC"
00014 __date__     = ("$Date: 2005/06/15 23:42:30 $").split(' ')[1]
00015 __version__  = "$Revision: 2.3 $"
00016 __release__  = "$Name: R04-12-00 $"
00017 __credits__  = "SLAC"
00018 
00019 
00020 
00021 from qt import *
00022 from bar import bar
00023 from math import *
00024 
00025 
00026 class barw(QWidget):
00027     def __init__(self,parent = None,name = None,fl = 0):
00028         QWidget.__init__(self,parent,name,fl)
00029 
00030         if not name:
00031             self.setName("barw")
00032 
00033         self.__minscale=1
00034         self.__fullscale=1
00035 
00036         self.line2 = QFrame(self,"line2")
00037         self.line2.setFrameShape(QFrame.HLine)
00038         self.line2.setFrameShadow(QFrame.Plain)
00039         self.line2.setLineWidth(3)
00040         self.line2.setFrameShape(QFrame.HLine)
00041 
00042         self.line1 = QFrame(self,"line1")
00043         self.line1.setFrameShape(QFrame.VLine)
00044         self.line1.setFrameShadow(QFrame.Plain)
00045         self.line1.setLineWidth(3)
00046         self.line1.setFrameShape(QFrame.VLine)
00047 
00048         self.line2_2 = QFrame(self,"line2_2")
00049         self.line2_2.setFrameShape(QFrame.HLine)
00050         self.line2_2.setFrameShadow(QFrame.Plain)
00051         self.line2_2.setLineWidth(3)
00052         self.line2_2.setFrameShape(QFrame.HLine)
00053 
00054         self.low = QLabel(self,"low")
00055         self.low.setAlignment(QLabel.AlignVCenter | QLabel.AlignRight)
00056         self.low.setScaledContents(1)
00057 
00058         self.font=QFont("Times")
00059         self.font.setPointSizeFloat(12.)
00060 
00061         self.bar = bar(self,"bar")
00062 
00063         self.line5_2 = QFrame(self,"line5_2")
00064         self.line5_2.setFrameShape(QFrame.HLine)
00065         self.line5_2.setFrameShadow(QFrame.Plain)
00066         self.line5_2.setLineWidth(2)
00067         self.line5_2.setFrameShape(QFrame.HLine)
00068 
00069         self.line2_3 = QFrame(self,"line2_3")
00070         self.line2_3.setFrameShape(QFrame.HLine)
00071         self.line2_3.setFrameShadow(QFrame.Plain)
00072         self.line2_3.setLineWidth(3)
00073         self.line2_3.setFrameShape(QFrame.HLine)
00074 
00075         self.line5_2_2 = QFrame(self,"line5_2_2")
00076         self.line5_2_2.setFrameShape(QFrame.HLine)
00077         self.line5_2_2.setFrameShadow(QFrame.Plain)
00078         self.line5_2_2.setLineWidth(2)
00079         self.line5_2_2.setFrameShape(QFrame.HLine)
00080 
00081         self.label = QLabel(self,"label")
00082         self.label.setAlignment(QLabel.AlignVCenter | QLabel.AlignRight)
00083         self.label.setScaledContents(1)
00084 
00085         self.high = QLabel(self,"high")
00086         self.high.setAlignment(QLabel.AlignVCenter | QLabel.AlignRight)
00087         self.high.setScaledContents(1)
00088 
00089         self.languageChange()
00090 
00091         #self.resize(QSize(124,168).expandedTo(self.minimumSizeHint()))
00092         self.clearWState(Qt.WState_Polished)
00093 
00094 
00095     def languageChange(self):
00096         self.setCaption(self.__tr("Form1"))
00097         self.low.setText(self.__tr("low"))
00098         self.label.setText(self.__tr("level"))
00099         self.high.setText(self.__tr("high"))
00100 
00101 
00102     def __tr(self,s,c = None):
00103         return qApp.translate("barw",s,c)
00104 
00105     def resizeEvent(self,rev):
00106         #print "resizing done"
00107         xel=float(rev.size().width())/11.
00108         yel=float(rev.size().height())/16.
00109         self.line2.setGeometry(QRect(xel*4.,yel*13-3,xel*2,3))
00110         self.line1.setGeometry(QRect(xel*4,yel*1,3,12*yel))
00111         self.line2_2.setGeometry(QRect(xel*4,yel*7-1,xel*2,3))
00112         self.low.setGeometry(QRect(0,yel*12,xel*4,yel*1.6))
00113         self.bar.setGeometry(QRect(xel*7,yel,xel*4,yel*12))
00114         self.line5_2.setGeometry(QRect(xel*4,yel*4-2,xel,2))
00115         self.line2_3.setGeometry(QRect(xel*4,yel*1,xel*2,3))
00116         self.line5_2_2.setGeometry(QRect(xel*4,yel*10-2,xel,2))
00117         self.label.setGeometry(QRect(0,yel*14,xel*11,yel*1.6))
00118         self.high.setGeometry(QRect(0,0,xel*4,yel*1.6))
00119         self.font.setPointSizeFloat(yel*1.6)
00120         self.label.setFont(self.font)
00121         self.low.setFont(self.font)
00122         self.high.setFont(self.font)
00123 
00124    
00125     def setHigh(self,high):
00126         self.high.setText(self.__tr(high))
00127 
00128     def setLow(self,low):
00129         self.low.setText(self.__tr(low))
00130 
00131     def setTitle(self,title):
00132         self.label.setText(self.__tr(title))
00133 
00134     def setMinScale(self,min):
00135         self.__minscale=min
00136 
00137     def setSlidingScale(self,scale):
00138         self.__fullscale=scale
00139         self.bar.setScale(scale)
00140         self.setHigh("%d"%scale)
00141         self.setLow("0")
00142 
00143     def displaySlidingScaleValue(self,val):
00144         if val>0 and (val>self.__fullscale or val<self.__fullscale*.2):
00145             l=pow(10,floor(log10(val)))
00146             if val/l>5:newscale=10*l
00147             elif val/l>2:newscale=5*l
00148             else:newscale=2*l
00149             if newscale<self.__minscale:
00150                 newscale=self.__minscale
00151             self.setSlidingScale(newscale)
00152         self.bar.displayValue(val)

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