def create_layout(self): self.projection_view = ProjectionView(self, getfocus=False) self.feature_view = FeatureView(self, getfocus=False) self.set_data() # Connect the FeatureView signal to the top-level widget signals. self.feature_view.spikesHighlighted.connect(self.spikesHighlighted) self.feature_view.spikesSelected.connect(self.spikesSelected) # Connect the bottom-level projectionChanged signals to the top-level # widget signals. self.feature_view.projectionChanged.connect(self.projectionChanged) self.projection_view.projectionChanged.connect(self.projectionChanged) # Interconnect the projectionChanged between the two bottom-level widgets. self.projection_view.projectionChanged.connect( self.projection_changed_projection_callback) self.feature_view.projectionChanged.connect( self.projection_changed_feature_callback) box = QtGui.QVBoxLayout() # HACK: pyside does not have this function if hasattr(box, 'setMargin'): box.setMargin(0) box.addWidget(self.projection_view) box.addWidget(self.feature_view) self.setLayout(box)