def testSignals(self): self._called = False m = QStringListModel() m.rowsAboutToBeInserted[QModelIndex, int, int].connect(self.sigCallback) m.insertRows(0, 3) self.assertTrue(self._called)
class VisualController(Controller): def __init__(self): super().__init__() self.results = QStringListModel(["Worker Results:"]) self.listview = QListView() self.listview.setModel(self.results) def start(self): super().start() self.listview.show() @Slot(int) def on_worker_result(self, result: int): super().on_worker_result(result) row_count = self.results.rowCount() assert self.results.insertRows(row_count, 1) new_row_idx = self.results.index(row_count, 0) self.results.setData(new_row_idx, str(result)) self._resize_to_fit_contents() def _resize_to_fit_contents(self): QApplication.processEvents() view_geo = self.listview.geometry() view_geo.setHeight( max(view_geo.height(), self.listview.contentsSize().height())) self.listview.setGeometry(view_geo)