Форум сайта python.su
Есть такой код:
Открывает файл с записями, если открыл создает обьект импортер.
Перемещает его в поток поток при старте вызывает метод импорта.
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()
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()
Отредактировано mironich (Июнь 14, 2013 10:24:19)
Офлайн
Обернул код импорта в транзикции, летает как электровеник, но они ведь не для этого предназначены..
Тоесть так:
self.model.database().transaction() self.model.submitAll() self.model.database().comit()
Отредактировано mironich (Июнь 14, 2013 11:01:03)
Офлайн