Russian Qt Forum

Qt => Model-View (MV) => Тема начата: spbcypher от Август 23, 2010, 17:27



Название: Обновление делегата QSqlRelationalDelegate
Отправлено: spbcypher от Август 23, 2010, 17:27
Господа, столкнулся с такой проблемой - при обновлении модели не обновляется делегат.
В аттаче ситуация - обновил "Задняя часть кузова" -> "Задняя часть кузова!" - в итоге там где выбрано "Задняя часть кузова" стало "Задняя часть кузова!", а в раскрытом комбо везде осталось "Задняя часть кузова".
создание модели:
Код:
    this->ig_tm = new QSqlRelationalTableModel();
    this->items_tv->setModel(this->ig_tm);
    this->ig_tm->setTable("items");
    QSqlRelation ig_link = QSqlRelation("spgroups","id","text");
    this->ig_tm->setRelation(2,ig_link);
    this->ig_tm->select();
    this->items_tv->setItemDelegate(new QSqlRelationalDelegate(this->items_tv));

обновление модели в пользовательском слоте

Код:
void Section1::slot_section_updated(int section)
{
    qDebug()<<"UPdated";
    this->ig_tm->select();
}


Название: Re: Обновление делегата QSqlRelationalDelegate
Отправлено: spbcypher от Август 23, 2010, 17:39
В общем решено, заново сделал Relation, но может кто подскажет более элегантный метод?

UPD. поторопился - обновляется только один раз :(

UPD2. решено установкой заново таблицы в модель, но получается некрасиво - слетают шапки
(setHeaderData) - есть лучший вариант?


Название: Re: Обновление делегата QSqlRelationalDelegate
Отправлено: crossly от Август 24, 2010, 09:37
Код:
ig_tm->relationModel(2)->select()


Название: Re: Обновление делегата QSqlRelationalDelegate
Отправлено: spbcypher от Август 30, 2010, 14:55
 :( Не работает - отображение combobox делегата обновляется, но не возможно выбрать новые добавленные элементы списка. Пока вернулся к прежнему варианту - заново устанавливаю таблицу, устанавливаю релашн, делаю выборку