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

radiomask.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__ = "Radio button 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 radiomask (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=0x1
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         if self.__nbox>0:
00038             for i in range(self.__nbox):
00039                 self.__labels[i].deleteLater()
00040                 self.__box[i].deleteLater()
00041             self.buttongroup.deleteLater()
00042             self.__mask=0x1
00043             self.__labels=[]
00044             self.__box=[]
00045         self.__nbox=nbox
00046         self.buttongroup=QButtonGroup(self,"group")
00047         for i in range(nbox):
00048             self.__box.append(QRadioButton(self.buttongroup,""))
00049             self.buttongroup.insert(self.__box[i],i)
00050             self.__labels.append(QLabel(self.buttongroup,""))
00051             self.__labels[i].setAlignment(QLabel.AlignCenter|QLabel.AlignVCenter)
00052         self.__box[0].setChecked(1) 
00053         QObject.connect(self.buttongroup,SIGNAL("clicked(int)"),self.updateMask) 
00054         def setTitle(self,text):
00055         self.__title.setText(text)
00056         def click(self,id):
00057         self.__box[id].setChecked(1)
00058         self.updateMask(id)
00059         def setLabel(self,i,text):
00060         self.__labels[i].setText(text)
00061         def updateMask(self,i):
00062         self.__mask=i
00063         self.emit(PYSIGNAL("update"), (self.__mask,))
00064         def getMask(self):
00065         return self.__mask
00066     
00067     def resizeEvent(self,rev):
00068         height=rev.size().height()
00069         width=rev.size().width()
00070         ch=(width)/self.__nbox
00071         self.__title.setGeometry(0,0,width,20)
00072         self.buttongroup.setGeometry(2,22,width-4,36)
00073         for i in range(self.__nbox):
00074             self.__labels[i].setGeometry(i*ch+5,20,ch-12,12)
00075                         self.__box[i].setGeometry(i*ch+ch/2+2-7,4,16,18)
00076         
00077         
00078 
00079 if __name__ == "__main__":
00080         a = QApplication(sys.argv)
00081         QObject.connect(a,SIGNAL("lastWindowClosed()"),a,SLOT("quit()"))
00082         w = radiomask()
00083     w.setup(16)
00084     w.setLabel(10,"10")
00085     w.setLabel(11,"11")
00086     w.setTitle("Hallo")
00087     w.click(4)
00088     w.setGeometry(300,400,350,60)
00089         w.setup(2)  
00090         a.setMainWidget(w)
00091         w.show()
00092         a.exec_loop() 

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