Я программирую какую-то адресную книгу. В левой части моего приложения у меня есть QListView для отображения имен моих контактов. В правой части моего приложения у меня есть форма для ввода информации (например, имя, адрес, номер телефона) моих контактов. Я сохраняю данные своих контактов в QSqlTableModel. Я использую свой QListView для отображения одного столбца моего QSqlTableModel.Как выбрать элемент в QListView, который соответствует последней вставленной записи основного QSqlTableModel?
Мой вопрос: Как я могу автоматически выбрать элемент в моем QListView, который соответствует последнему вставленному контакту в моем QSqlTableModel?
Это, как я создал свою модель:
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("datenbank.db");
model = new QSqlTableModel(this, db);
model->setTable("demodaten");
model->setEditStrategy(QSqlTableModel::OnManualSubmit);
model->setSort(0, Qt::AscendingOrder);
model->select();
view->setModel(model);
view->setModelColumn(0);
Это, как я добавить новую запись в моей модели:
QSqlRecord record = model->record();
for(int i = 0; i<record.count(); i++){
record.setValue(i, "");
}
record.setValue("codenummer", p.getCodeNummer());
record.setValue("vorname", p.getVorname());
record.setValue("nachname", p.getNachname());
record.setValue("geburtsdatum", p.getGeburtsdatum());
model->insertRecord(-1, record);
model->submitAll();
Привет Serge, спасибо много для ваша помощь! Но, к сожалению, это не сработает. Всегда выбирается первый элемент в моем QListView.Что странно, так это то, что on_rowsInserted(), кажется, вызывается дважды, когда новая строка вставлена в мой QSqlTableModel. При первом запуске вызова всегда присутствует индекс последнего элемента в моем QListView. Во втором вызове всегда 0. – Tom 2010-11-27 22:29:26
«on_rowsInserted(), кажется, дважды называется« не звучит правильно »; Я думаю, вам нужно будет опубликовать некоторые из ваших кодов, поскольку основной причиной вашей проблемы является подробная информация о том, как вы инициализируете модель и как вставляются новые строки. – 2010-11-27 23:46:31