def set_data_collection(self, data_collection): self._model = DataCollectionModel(data_collection) self.setModel(self._model) sm = QtCore.QItemSelectionModel(self._model) sm.selectionChanged.connect(lambda *args: self.selection_changed.emit()) self.setSelectionModel(sm) self.setRootIsDecorated(False) self.setExpandsOnDoubleClick(False) self.expandToDepth(0) self._model.layoutChanged.connect(lambda: self.expandToDepth(0)) self._model.layoutChanged.connect(self.selection_changed.emit) self._model.new_item.connect(self.select_indices) self.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows) self.setSelectionMode(QtWidgets.QAbstractItemView.ExtendedSelection) self.setDragEnabled(True) self.setDropIndicatorShown(True) self.setDragDropMode(QtWidgets.QAbstractItemView.DragOnly) # Update when any message is emitted which would indicate a change in # data collection content, colors, labels, etc. It's easier to simply # listen to all events since the viewport update is fast. data_collection.hub.subscribe(self, Message, handler=self._update_viewport)
def build_table(self, schedules): columns = ['Schedule'] table = self.table model = ScheduleTableModel(columns, schedules) table.setModel(model) selectionModel = QtCore.QItemSelectionModel(model, table) table.setSelectionModel(selectionModel) selectionModel.currentRowChanged.connect(self.select_row_cb) #model.layoutChanged.connect(self.sort_cb) # set column width to fit contents table.resizeColumnsToContents() table.resizeRowsToContents()
def set_data_collection(self, data_collection): self._model = DataCollectionModel(data_collection) self.setModel(self._model) sm = QtCore.QItemSelectionModel(self._model) sm.selectionChanged.connect(lambda *args: self.selection_changed.emit()) self.setSelectionModel(sm) self.setRootIsDecorated(False) self.setExpandsOnDoubleClick(False) self.expandToDepth(0) self._model.layoutChanged.connect(lambda: self.expandToDepth(0)) self._model.layoutChanged.connect(self.selection_changed.emit) self._model.new_item.connect(self.select_indices) self.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows) self.setSelectionMode(QtWidgets.QAbstractItemView.ExtendedSelection) self.setDragEnabled(True) self.setDropIndicatorShown(True) self.setDragDropMode(QtWidgets.QAbstractItemView.DragOnly)
self.mdv.show_row_n(n) spinner.valueChanged.connect(on_change) self.setLayout(w_layout) def doc_consumer(self, name, doc): self.mdv.doc_consumer(name, doc) self.spinner.setRange(0, self.mdv.headermodel.rowCount() - 1) app = QtWidgets.QApplication.instance() if app is None: app = QtWidgets.QApplication([b"Live data demo"]) app.lastWindowClosed.connect(app.quit) headermodel = QtGui.QStandardItemModel() selectionmodel = QtCore.QItemSelectionModel(headermodel) metadataview = MDVConusumer(headermodel, selectionmodel) view_box = MDVWithButtons(metadataview) hw = hw() hw.motor.set(15) hw.motor.delay = 0.1 hw.motor1.delay = 0.2 hw.motor2.delay = 0.3 hw.det.kind = "hinted" hw.det1.kind = "hinted" hw.det2.kind = "hinted" RE, queue, thread, teleport = spawn_RE()