def __init__(self, trajectoryAnalysis, parent=None): ''' Constructor ''' super(TrajectoryWidget, self).__init__(parent) self.trajectoryAnalysis = trajectoryAnalysis self.trajectoryAnalyserWidgets=[RunRestAnalyserWidget(self.trajectoryAnalysis.analysers[0]), RatRunAnalyserWidget(self.trajectoryAnalysis.analysers[1])] self.trajectoryAnalyserCaptions=['RunRest', 'RatRun'] self.errorDetectorWidget = ErrorDetectorWidget(self.trajectoryAnalysis.errorDetector) self.analyseDialog = AnalyseDialog(self) self.analysisProgressDialog = QtGui.QProgressDialog() self.analysisProgressDialog.setWindowTitle('Analysing files') # # self.trajectoryAnalysis.signalAnalysisStarted.connect(self.signalAnalysisStarted) self.trajectoryAnalysis.signalNextFileAnalysing.connect(self.signalNextFileAnalysing) self.trajectoryAnalysis.signalAnalysisFinished.connect(self.signalAnalysisFinished) # layout = QtGui.QGridLayout() # #self.analyseFromFileButton = ActionButton(self.actionAnalyseFromFiles) #layout.addWidget(self.analyseFromFileButton, 0, 0, 1, 2) # defaultSettingsLabel = QtGui.QLabel('Default set for:') layout.addWidget(defaultSettingsLabel, 1, 0) self.defaultSettigsComboBox = QtGui.QComboBox() defaultSettingsLabel.setBuddy(self.defaultSettigsComboBox) layout.addWidget(self.defaultSettigsComboBox, 1, 1) self.defaultSettigsComboBox.addItems(['Imago', 'Larva', 'Rat']) self.defaultSettigsComboBox.currentIndexChanged.connect(self.setPreset) # createImageLabel = QtGui.QLabel('Image creation method') layout.addWidget(createImageLabel,2,0) self.createImageComboBox = QtGui.QComboBox() createImageLabel.setBuddy(self.createImageComboBox) self.createImageComboBox.addItems(self.trajectoryAnalysis.imageCreatorsCaptions) self.createImageComboBox.setCurrentIndex(1) self.createImageComboBox.currentIndexChanged.connect(self.trajectoryAnalysis.setImageCreator) self.createImageComboBox.currentIndexChanged.connect(self.setLevelsEnabled) layout.addWidget(self.createImageComboBox,2,1) # imageLevelsLabel = QtGui.QLabel('Accumulate levels') layout.addWidget(imageLevelsLabel,3,0) self.imageLevelsSpinBox = QtGui.QSpinBox() createImageLabel.setBuddy(self.imageLevelsSpinBox) self.imageLevelsSpinBox.setMaximum(10) self.imageLevelsSpinBox.setValue(self.trajectoryAnalysis.imageLevels) self.imageLevelsSpinBox.valueChanged.connect(self.trajectoryAnalysis.setImageLevelsCount) layout.addWidget(self.imageLevelsSpinBox,3,1) # writeSpeedLabel = QtGui.QLabel('Write speed info') layout.addWidget(writeSpeedLabel,4,0) writeSpeedCheckBox = QtGui.QCheckBox() writeSpeedLabel.setBuddy(writeSpeedCheckBox) layout.addWidget(writeSpeedCheckBox,4,1) writeSpeedCheckBox.stateChanged.connect(self.trajectoryAnalysis.setWriteSpeed) # layout.addWidget(self.errorDetectorWidget,5,0,1,2) self.tabWidget=QtGui.QTabWidget() for i in range(2) : self.tabWidget.addTab(self.trajectoryAnalyserWidgets[i], self.trajectoryAnalyserCaptions[i]) self.tabWidget.currentChanged.connect(self.trajectoryAnalysis.setAnalyser) layout.addWidget(self.tabWidget,6,0,1,2) self.setLayout(layout) self.defaultSettigsComboBox.setCurrentIndex(0)
class TrajectoryWidget(QtGui.QWidget): ''' This widget holds GUI elements for trajectory analysing ''' signalAnalyseFromFile = QtCore.pyqtSignal(QtCore.QString, QtCore.QStringList) def __init__(self, trajectoryAnalysis, parent=None): ''' Constructor ''' super(TrajectoryWidget, self).__init__(parent) self.trajectoryAnalysis = trajectoryAnalysis self.trajectoryAnalyserWidgets=[RunRestAnalyserWidget(self.trajectoryAnalysis.analysers[0]), RatRunAnalyserWidget(self.trajectoryAnalysis.analysers[1])] self.trajectoryAnalyserCaptions=['RunRest', 'RatRun'] self.errorDetectorWidget = ErrorDetectorWidget(self.trajectoryAnalysis.errorDetector) self.analyseDialog = AnalyseDialog(self) self.analysisProgressDialog = QtGui.QProgressDialog() self.analysisProgressDialog.setWindowTitle('Analysing files') # # self.trajectoryAnalysis.signalAnalysisStarted.connect(self.signalAnalysisStarted) self.trajectoryAnalysis.signalNextFileAnalysing.connect(self.signalNextFileAnalysing) self.trajectoryAnalysis.signalAnalysisFinished.connect(self.signalAnalysisFinished) # layout = QtGui.QGridLayout() # #self.analyseFromFileButton = ActionButton(self.actionAnalyseFromFiles) #layout.addWidget(self.analyseFromFileButton, 0, 0, 1, 2) # defaultSettingsLabel = QtGui.QLabel('Default set for:') layout.addWidget(defaultSettingsLabel, 1, 0) self.defaultSettigsComboBox = QtGui.QComboBox() defaultSettingsLabel.setBuddy(self.defaultSettigsComboBox) layout.addWidget(self.defaultSettigsComboBox, 1, 1) self.defaultSettigsComboBox.addItems(['Imago', 'Larva', 'Rat']) self.defaultSettigsComboBox.currentIndexChanged.connect(self.setPreset) # createImageLabel = QtGui.QLabel('Image creation method') layout.addWidget(createImageLabel,2,0) self.createImageComboBox = QtGui.QComboBox() createImageLabel.setBuddy(self.createImageComboBox) self.createImageComboBox.addItems(self.trajectoryAnalysis.imageCreatorsCaptions) self.createImageComboBox.setCurrentIndex(1) self.createImageComboBox.currentIndexChanged.connect(self.trajectoryAnalysis.setImageCreator) self.createImageComboBox.currentIndexChanged.connect(self.setLevelsEnabled) layout.addWidget(self.createImageComboBox,2,1) # imageLevelsLabel = QtGui.QLabel('Accumulate levels') layout.addWidget(imageLevelsLabel,3,0) self.imageLevelsSpinBox = QtGui.QSpinBox() createImageLabel.setBuddy(self.imageLevelsSpinBox) self.imageLevelsSpinBox.setMaximum(10) self.imageLevelsSpinBox.setValue(self.trajectoryAnalysis.imageLevels) self.imageLevelsSpinBox.valueChanged.connect(self.trajectoryAnalysis.setImageLevelsCount) layout.addWidget(self.imageLevelsSpinBox,3,1) # writeSpeedLabel = QtGui.QLabel('Write speed info') layout.addWidget(writeSpeedLabel,4,0) writeSpeedCheckBox = QtGui.QCheckBox() writeSpeedLabel.setBuddy(writeSpeedCheckBox) layout.addWidget(writeSpeedCheckBox,4,1) writeSpeedCheckBox.stateChanged.connect(self.trajectoryAnalysis.setWriteSpeed) # layout.addWidget(self.errorDetectorWidget,5,0,1,2) self.tabWidget=QtGui.QTabWidget() for i in range(2) : self.tabWidget.addTab(self.trajectoryAnalyserWidgets[i], self.trajectoryAnalyserCaptions[i]) self.tabWidget.currentChanged.connect(self.trajectoryAnalysis.setAnalyser) layout.addWidget(self.tabWidget,6,0,1,2) self.setLayout(layout) self.defaultSettigsComboBox.setCurrentIndex(0) @QtCore.pyqtSlot(int) def setLevelsEnabled(self, index): self.imageLevelsSpinBox.setEnabled(index == 1) @QtCore.pyqtSlot(int) def signalAnalysisStarted(self, count): self.analysisProgressDialog.setMaximum(count) self.analysisProgressDialog.show() @QtCore.pyqtSlot(QtCore.QString, int) def signalNextFileAnalysing(self, name, progress): self.analysisProgressDialog.setLabelText(name) self.analysisProgressDialog.setValue(progress) @QtCore.pyqtSlot(int) def signalAnalysisFinished(self): self.analysisProgressDialog.close() @QtCore.pyqtSlot() def analyseFromFile(self): ''' ''' self.analyseDialog.clearData() if self.analyseDialog.exec_() : self.trajectoryAnalysis.analyseFromFiles(self.analyseDialog.analyseFileName, self.analyseDialog.ltFilesList) def abortAnalysis(self): self.trajectoryAnalysis.abortAnalysis() @QtCore.pyqtSlot(int) def setPreset(self, index): self.defaultSettigsComboBox.setCurrentIndex(index) self.errorDetectorWidget.setPreset(index) if index == 1 : # Larva self.createImageComboBox.setCurrentIndex(0) self.tabWidget.setCurrentIndex(0) elif index == 0 : # Imago self.createImageComboBox.setCurrentIndex(1) self.tabWidget.setCurrentIndex(0) elif index == 2 : # Rat self.createImageComboBox.setCurrentIndex(0) self.tabWidget.setCurrentIndex(0) self.tabWidget.currentWidget().setPreset(index)