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

mask.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__ = "Mask widget for trigger display"
00013 __author__   = "Martin Kocian, SLAC"
00014 __date__     = ("$Date: 2005/06/03 23:03:42 $").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 mask (QWidget):
00023 
00024         def __init__(self,parent= None,name = None,fl = 0):
00025                 QWidget.__init__(self,parent,name,fl)
00026         if not name:
00027             self.setName("mask")
00028                 self.__nbox=0
00029         self.__box=[]
00030         self.__mask=0x0
00031         self.__labels=[]
00032         self.__title=QLabel(self,"title")
00033         self.__title.setAlignment(QLabel.AlignCenter|QLabel.AlignVCenter)
00034         self.clearWState(Qt.WState_Polished)
00035 
00036         def setup(self,nbox):
00037         self.__nbox=nbox
00038         for i in range(nbox):
00039             self.__box.append(QCheckBox(self,""))
00040             self.__labels.append(QLabel(self,""))
00041             self.__labels[i].setAlignment(QLabel.AlignRight|QLabel.AlignVCenter)
00042             font=self.__labels[i].font()
00043             font.setPointSize(8)
00044             self.__labels[i].setFont(font)
00045             QObject.connect(self.__box[i],SIGNAL("clicked()"),self.updateMask) 
00046             
00047         def setTitle(self,text):
00048         self.__title.setText(text)
00049         def setLabel(self,i,text):
00050         self.__labels[i].setText(text)
00051         def updateMask(self):
00052         self.__mask=0x0
00053         for i in range(self.__nbox):
00054             if self.__box[i].isChecked():
00055                 self.__mask|=1<<i
00056                 self.emit(PYSIGNAL("update"), (self.__mask,))
00057         def getMask(self):
00058         return self.__mask
00059     def setMask(self,mask):
00060         m=0x0
00061         for i in range (self.__nbox):
00062             m|=1<<i
00063             self.__box[i].setChecked(mask&(1<<i))
00064         self.__mask=mask&m  
00065     
00066     def resizeEvent(self,rev):
00067         height=rev.size().height()
00068         width=rev.size().width()
00069         ch=(height-15)/self.__nbox
00070         self.__title.setGeometry(0,height-15,width,15)
00071         for i in range(self.__nbox):
00072             self.__labels[i].setGeometry(0,i*ch,width-12,ch)
00073                         self.__box[i].setGeometry(width-12,i*ch+ch/2-6,12,12)
00074         
00075         
00076 
00077 if __name__ == "__main__":
00078         a = QApplication(sys.argv)
00079         QObject.connect(a,SIGNAL("lastWindowClosed()"),a,SLOT("quit()"))
00080         w = mask()
00081     w.setup(12)
00082     w.setLabel(10,"a")
00083     w.setTitle("Hallo")
00084     w.setMask(0xffff)
00085     w.setGeometry(300,400,50,164)
00086         a.setMainWidget(w)
00087         w.show()
00088         a.exec_loop() 

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