Название: Странное поведение QSqlTableModel + TableView Отправлено: demal от Декабрь 06, 2012, 21:38 Столкнулся с такой бедой. Ниже приведенный код удаляет в одной модели и таблице, а на другой связке говорит что индекс строки неверен.
void LSostav::on_toolButton_26_clicked() { if(ui->ListDelo->currentIndex().isValid()) { int ret = QMessageBox::warning(this, tr("Внимание"), tr("Данная операция удалит запись из базы данных. Продолжить?"), QMessageBox::Yes | QMessageBox::No, QMessageBox::No); qDebug()<<ret; if(ret==QMessageBox::Yes){ model_list->removeRow(ui->ListDelo->currentIndex().row()); //а вот тут и засада } }} модели нигде не пересекаются и вьюхи разные. Т.е. один и тот же код в разных слотах работает по разному :-[ Что я делаю не так? Название: Re: Странное поведение QSqlTableModel + TableView Отправлено: kambala от Декабрь 06, 2012, 21:57 можно начать с того, что сохранять ui->ListDelo->currentIndex() перед ифом (или в самом условии ифа)
Название: Re: Странное поведение QSqlTableModel + TableView Отправлено: demal от Декабрь 06, 2012, 22:11 А что это принципиально поменяет?
Название: Re: Странное поведение QSqlTableModel + TableView Отправлено: kambala от Декабрь 06, 2012, 22:22 всякое может быть, попробовать стоит. больше ничего при таком количестве кода сказать невозможно.
Название: Re: Странное поведение QSqlTableModel + TableView Отправлено: lit-uriy от Декабрь 07, 2012, 09:49 demal, в коде у тебя нюанс - после того как окошко с вопросом пользователю показалось, фокус уходит со списка.
Это может приводить к тому, что текущей строки в списке больше нет, поэтому запоминай номер строки и затем по номеру строки удаляй. Название: Re: Странное поведение QSqlTableModel + TableView Отправлено: LEO от Декабрь 07, 2012, 16:26 Код: QModelIndex index = ui->tableView->currentIndex(); Название: Re: Странное поведение QSqlTableModel + TableView Отправлено: demal от Декабрь 08, 2012, 12:08 секрет оказался прост. :) Причина не работы кода в одном из случаев - заполнение базы. Если модель через setData добавляет строки, но количество заносимых значений меньше чем столбцов в таблице, то удаление потом на этих строках работать не будет. При этом отображаться будет так, как-будто все поля вводятся. Вот так вот :-\.
Название: Re: Странное поведение QSqlTableModel + TableView Отправлено: GreatSnake от Декабрь 08, 2012, 13:18 demal, в коде у тебя нюанс - после того как окошко с вопросом пользователю показалось, фокус уходит со списка. Никак это не может приводить к этому)Это может приводить к тому, что текущей строки в списке больше нет, поэтому запоминай номер строки и затем по номеру строки удаляй. |