Пример #1
0
 def testSignals(self):
     self._called = False
     m = QStringListModel()
     m.rowsAboutToBeInserted[QModelIndex, int,
                             int].connect(self.sigCallback)
     m.insertRows(0, 3)
     self.assertTrue(self._called)
Пример #2
0
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)