Название: TableView выделить измененные значения Отправлено: FireSnake от Март 08, 2011, 17:00 Здравствуйте, недавно начал изучать QT, стал вникать в MV и столкнулся со следующей задачей:
есть модель и TableView Код: ... Код: void SpinBoxDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const{ Название: Re: TableView выделить измененные значения Отправлено: FireSnake от Март 08, 2011, 17:22 Если вместо QSqlTableModel использовать QStandartItemModel - то указанная строчка работает
Название: Re: TableView выделить измененные значения Отправлено: Kolobok от Март 08, 2011, 17:59 QSqlTableModel игнорирует все роли кроме Qt::DisplayRole | Qt::EditRole.
Название: Re: TableView выделить измененные значения Отправлено: FireSnake от Март 08, 2011, 18:23 И какой выход можно использовать? Делать свою модель или использовать прокси модель?
Как бы мне это реализовать более правильно) не хочется говнокодить ^_^ Название: Re: TableView выделить измененные значения Отправлено: Пантер от Март 09, 2011, 10:11 Пиши свою модель.
Название: Re: TableView выделить измененные значения Отправлено: FireSnake от Март 09, 2011, 18:53 Тогда вопрос такой, если я создам модель на основе QSqlTableModel что мне нужно сделать чтобы как раз обойти вот то ограничение что она игнорирует все роли кроме дисплей и эдит
Название: Re: TableView выделить измененные значения Отправлено: alexman от Март 09, 2011, 22:39 Храни в модели кеш и переопределяй методы setData, data.
Название: Re: TableView выделить измененные значения Отправлено: FireSnake от Март 09, 2011, 23:35 На счет кэша не догнал как реализовать. Примерчиком не подкормите? ???
Название: Re: TableView выделить измененные значения Отправлено: alexman от Март 09, 2011, 23:51 http://www.prog.org.ru/topic_12792_0.html (http://www.prog.org.ru/topic_12792_0.html)
Название: Re: TableView выделить измененные значения Отправлено: lit-uriy от Март 10, 2011, 21:18 к стати, представление умеет показывать изменения на заголовках строк, в случае если фиксация данных происходит вручную (manual submit). Надо покопать исходник, чтобы понять, как оно это делает.
Название: Re: TableView выделить измененные значения Отправлено: qt_user от Ноябрь 22, 2011, 10:48 Вот посмотрел примеры делегата в Spin Box Delegate Example и возник вопрос чисто теоретического характера:
зачем делают вот так: Код: spinBox->interpretText(); Код: int value = spinBox->value(); |