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)
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)