QSqlRelationalTableModel с OnManualSubmit

Я установил модель представления следующим образом:

model = QSqlRelationalTableModel()
model.setEditStrategy(QSqlTableModel.OnManualSubmit)
model.setTable("VoucherPos")
model.setFilter("VoucherKey='" + str(parent_id) + "'")

model.setRelation(10, QSqlRelation("IO", "IOKey", "IOText"))

self.tblSubTable.setItemDelegate(QSqlRelationalDelegate())
model.select()
self.tblSubTable.setModel(model)

Но после редактирования столбца 10 в таблице будет показано значение идентификатора (IOKey). Перед редактированием отображается правильное связанное значение ("IOText").

Если я удаляю строку с "setEditStrategy", все работает нормально, но я хочу иметь EditStrategy с "OnManualSubmit".

Спасибо!


person vezzon    schedule 11.07.2018    source источник
comment
Почему вы хотите использовать OnManualSubmit?   -  person eyllanesc    schedule 11.07.2018
comment
Потому что я хочу иметь возможность отменить изменения. Я хочу отправить данные о нажатии кнопки. Эта таблица является подтаблицей в элементе-виджете.   -  person vezzon    schedule 11.07.2018
comment
Какую базу данных вы используете?   -  person eyllanesc    schedule 11.07.2018
comment
база данных sqlite3   -  person vezzon    schedule 11.07.2018


Ответы (1)


Я решил проблему. В моем исходном коде я использовал подкласс QSqlRelationalTableModel, где я установил выравнивание для некоторых столбцов (и столбца 10 тоже). Когда я использую исходный класс QSqlRelationalTableModel, все работает нормально.

person vezzon    schedule 12.07.2018