Открывает файл с записями, если открыл создает обьект импортер.
Перемещает его в поток поток при старте вызывает метод импорта.
records = open_file(fn) if records: self.importer = RIWorcker(self.model, records) self.import_thread = QThread() self.import_thread.started.connect(self.importer.runImport) self.importer.moveToThread(self.import_thread) self.import_thread.start()
Метод runImport:
Импортирует записи в модель из БД.
def runImport(self): self.model.setEditStrategy(QSqlTableModel.OnManualSubmit) for record in self.record_list: row = self.model.rowCount() self.model.insertRow(row) self.model.setData(self.model.index(row, 2), QVariant(record)) self.record_imported.emit() self.model.submitAll() self.import_finished.emit()
Когда вызывается record_imported(сигнал)
На окне QDialog увеличивается прогресс бар.
И тут начинаются проблемы при вызове submitAll главное окно приложения виснет…
(Не отвечает на сообщения)
Почему виснет?
Все это отображается в QTableView