Я использую QtableView для отображения и редактирования данных из QsqlTableModel. Все отлично: данные из таблицы postgreSQL отображаются, и пользователь может их редактировать и сохранять изменения.
Я хочу добавить строку при нажатии кнопки. Я использую метод insertRecord из моего QslTableModel. Строка правильно добавлена в QTableView.
Моя проблема: я хочу вставить значение из запроса в первую ячейку этой новой строки. (для автоматического заполнения уникального идентификатора).
Это мой код :
def ajoutlgn(self):
query_idNewLine = QtSql.QSqlQuery(self.db)
if query_idNewLine.exec_('SELECT sp_idsuivi+1 FROM bdsuivis.t_suivprev_tablo ORDER BY sp_idsuivi DESC LIMIT 1'):
while query_idNewLine.next():
identifiant = query_idNewLine.value(0)
#print identifiant
record = QtSql.QSqlRecord()
record.setValue(1,identifiant)
self.model.insertRecord(self.model.rowCount(), record)
Значение не вставляется в новую строку (но если я ввожу значение вручную, оно работает отлично). Тем не менее, с запросом все в порядке (как я вижу по строке «print identifiant», которая возвращает ожидаемое целое число).
Вы видите, что я делаю неправильно ?
Существуют ли другие способы программной вставки значения в ячейку QTableView?
Или мне нужно использовать QitemDelegate ?
Спасибо за аванс.
model = QSqlQueryModel()
,model.setQuery('SELECT sp....')
,tv.setModel(model)
- person eyllanesc   schedule 01.12.2017