コード例 #1
0
    def updateWidget(self):
        """ updateWidget() -> None
        Remove the current statisticsWidget (if existing) and create a new
        one depending on the user specified source and view type.
        """

        """ clean up """
        if self.statisticsWidget!=None:
            self.layout().removeWidget(self.statisticsWidget)
            self.statisticsWidget.setParent(None)
            del self.statisticsWidget
        
        """ construct widget """
        item=self.sourceComboBox.currentText()
        if item=='Time':
            self.statisticsWidget=QHistogramWidget(QTimeHistogramView(TimeDataSource()),self)
        elif item=='Time Difference':
            self.statisticsWidget=QHistogramWidget(QTimeHistogramView(TimeDiffDataSource()),self)
        self.statisticsWidget.updateData()
        self.layout().addWidget(self.statisticsWidget)
コード例 #2
0
class QGeneralStatisticsPanel(QtGui.QFrame):
    """ QGeneralStatisticsPanel implements the container to hold the
    statistics view and controls to specify the source type and 
    the view type.
    """

    def __init__(self,parent=None):
        """ __init__(parent:QWidget) -> None
        Create the GUI content.
        """
        QtGui.QFrame.__init__(self,parent)
        self.setFrameStyle(QtGui.QFrame.Panel|QtGui.QFrame.Sunken)
        self.setLineWidth(2)
    
        """ global layout """
        layout=QtGui.QVBoxLayout(self)
        layout.setMargin(3)
        layout.setSpacing(3)
        self.setLayout(layout)
        
        """ spin box and layout """
        comboLayout=QtGui.QHBoxLayout()
        layout.addLayout(comboLayout)
        comboLayout.setSpacing(3)
        comboLayout.setMargin(0)

        """ source combo box """
        self.sourceComboBox=QtGui.QComboBox(self)
        self.sourceComboBox.addItem('Time')
        self.sourceComboBox.addItem('Time Difference')
        self.connect(self.sourceComboBox,QtCore.SIGNAL('currentIndexChanged(int)'),self.updateWidget)
        comboLayout.addWidget(QtGui.QLabel('Source'))
        comboLayout.addWidget(self.sourceComboBox)
        comboLayout.addStretch()
        
        """ view type combo box """
        self.typeComboBox=QtGui.QComboBox(self)
        self.typeComboBox.addItem('Histogram')
        self.connect(self.typeComboBox,QtCore.SIGNAL('currentIndexChanged(int)'),self.updateWidget)
        comboLayout.addWidget(QtGui.QLabel('View'))
        comboLayout.addWidget(self.typeComboBox)
        
        """ statistics view """
        self.counter=0
        self.statisticsWidget=None
        self.updateWidget()

    def updateData(self):
        """ updateData() -> None
        Call updateData for the statistics widget.
        """
        if self.statisticsWidget!=None:
            self.statisticsWidget.updateData()
    
    def updateWidget(self):
        """ updateWidget() -> None
        Remove the current statisticsWidget (if existing) and create a new
        one depending on the user specified source and view type.
        """

        """ clean up """
        if self.statisticsWidget!=None:
            self.layout().removeWidget(self.statisticsWidget)
            self.statisticsWidget.setParent(None)
            del self.statisticsWidget
        
        """ construct widget """
        item=self.sourceComboBox.currentText()
        if item=='Time':
            self.statisticsWidget=QHistogramWidget(QTimeHistogramView(TimeDataSource()),self)
        elif item=='Time Difference':
            self.statisticsWidget=QHistogramWidget(QTimeHistogramView(TimeDiffDataSource()),self)
        self.statisticsWidget.updateData()
        self.layout().addWidget(self.statisticsWidget)