Название: QSqlTableModel+QSortFilterProxyModel &QDataWidgetMapper Отправлено: VAP от Май 24, 2010, 11:22 Eсть QSqlTableModel, устанавливаю мапперу эту модель.
Код: sql_typeModel = new QSqlTableModel(this, db); Код: configTreeModel = new ConfigTreeModel(sql_typeModel, this); Код: treeView->setModel(proxyModel); Код: connect(treeView->selectionModel(), SIGNAL(currentRowChanged(QModelIndex, QModelIndex)), Название: Re: QSqlTableModel+QSortFilterProxyModel &QDataWidgetMapper Отправлено: Kolobok от Май 24, 2010, 12:41 Прочитай внимательно, что делает QDataWidgetMapper::setCurrentIndex( int index ) и что делаешь ты.
Название: Re: QSqlTableModel+QSortFilterProxyModel &QDataWidgetMapper Отправлено: VAP от Май 24, 2010, 13:39 Пытаюсь "засинхронизировать" индекс модели отображения с маппером. Проверил в слоте
setMappingTreeView(const QModelIndex &index) - "id" исходной модели выставляется правильно, а вот почему "косит" маппер не понятно. Название: Re: QSqlTableModel+QSortFilterProxyModel &QDataWidgetMapper Отправлено: Kolobok от Май 24, 2010, 15:06 Я ведь написал, читай внимательно. В метод setCurrentIndex( int index ) должен передаваться номер строки или столбца. Данные из столбика "id" не имеют к этому абсолютно никакого отношения.
Название: Re: QSqlTableModel+QSortFilterProxyModel &QDataWidgetMapper Отправлено: VAP от Май 24, 2010, 15:49 У меня в исходной таблице номер строки и есть тот самый "id" в первой колонке(насколько я понимаю). Или может быть иначе, поясни.
Название: Re: QSqlTableModel+QSortFilterProxyModel &QDataWidgetMapper Отправлено: Kolobok от Май 24, 2010, 16:35 "id" насколько я понимаю это primary key в таблице. По его значению невозможно вычислить номер строки. Таблица может быть отсортирована, строки из середины могут быть удалены или не попасть результирующий набор и т.д. Кроме того, индекс в базе обычно начинается с 1.
Название: Re: QSqlTableModel+QSortFilterProxyModel &QDataWidgetMapper Отправлено: VAP от Май 24, 2010, 16:53 Все разобрался, сделал вот так, и все заработало как надо:
Код: void ConfigDialog::setMappingTreeView(const QModelIndex &index) |