Russian Qt Forum

Qt => Model-View (MV) => Тема начата: fearn0t от Декабрь 14, 2009, 17:09



Название: QSortFilterProxyModel + QAbstractItemDelegate
Отправлено: fearn0t от Декабрь 14, 2009, 17:09
Всем Привет =))
есть
1ое)
Код
C++ (Qt)
productModel = new QSqlRelationalTableModel(this)
2ое)
Код
C++ (Qt)
proxyModel = new QSortFilterProxyModel
proxyModel->setSourceModel(productModel)
   
3ье)
Код
C++ (Qt)
productView = new QTableView
productView->setModel(proxyModel)
productView->setItemDelegate(new QSqlRelationalDelegate(this))

Смысл такой, что делегат не работает с прокси-моделью. Какие возможные пути решения?


Название: Re: QSortFilterProxyModel + QAbstractItemDelegate
Отправлено: fearn0t от Декабрь 14, 2009, 20:45
Еще проблема в том, что QTableView + QSqlRelationalDelegate не обновляют свой вид из sql
помогите пожалуйста, мне уже сдавать на днях надо =(


Название: Re: QSortFilterProxyModel + QAbstractItemDelegate
Отправлено: break от Декабрь 14, 2009, 21:36
Не хочешь разбираться сам так купи курсяк за деньги - че мозг парить то ?

P.S. тут что форум помощи студентам-лентяям?


Название: Re: QSortFilterProxyModel + QAbstractItemDelegate
Отправлено: fearn0t от Декабрь 14, 2009, 22:08
Что так агрессивно то? =))
Отписался на форуме и параллельно сам ищу решение.


Название: Re: QSortFilterProxyModel + QAbstractItemDelegate
Отправлено: break от Декабрь 14, 2009, 23:06
сори за агрессивность - ты ищешь ответы на то что описано в документации и не должно вызывать никаких вопросов - ты просто спрашиваешь - эй мужики дай те мне рабочий кусок кода! где твоя проблема то?


Название: Re: QSortFilterProxyModel + QAbstractItemDelegate
Отправлено: fearn0t от Декабрь 14, 2009, 23:51
Книжка Шлее, Книжка Бланшета + assistant и я не нашел ответов. Я бы не стал спрашивать, если бы знал где искать.
опишу вкратце:
productView->setModel(productModel) - делегат(выпадающий список) работает
productView->setModel(proxyModel) - делегат не работает.
Понятия не имею в чем дело. перерыл все методы. С этим можно смириться, просто хотелось сделать красиво.

В данном случае я хотел узнать, можно это сделать стандартными классами или надо писать свой делегат/модель.

А вторая проблема в том, что как мне кажется модель не обновляется.... Происходит все так:
1) захожу в диалоговое окно
2) заношу новые данные в таблицу
3) данные заносятся (!)
4) и в QSqlRelationalDelegate  не отображается новое значение.
уже все перепробывал что смог найти:
productView->update();
productView->reset();
productModel->submitAll();
QSqlDatabase::database().commit();

И непонятно то, что я писал очень похоже на StuffManager из книги Бланшета, который рабочий....




Название: Re: QSortFilterProxyModel + QAbstractItemDelegate
Отправлено: MoPDoBoPoT от Декабрь 15, 2009, 00:30
В ассистенте написано, что QSqlRelationalDelegate предназначен для QSqlRelationalTableModel. Посмотрев в исходники, можно в этом убедиться.

А вторая проблема в том, что как мне кажется модель не обновляется.... Происходит все так:
1) захожу в диалоговое окно
2) заношу новые данные в таблицу
3) данные заносятся (!)
4) и в QSqlRelationalDelegate  не отображается новое значение.
Что-то не очень понятно. Ты в отдельном окошке заносишь новую запись по средствам SQL-запроса (INSERT INTO...)? Если да, то надо обновить данные в модели, чтобы увидеть новую запись:
Код
C++ (Qt)
productModel->select();
 
(возможно надо будет заново установить отношение(QSqlRelation), сейчас нет возможности проверить)


Название: Re: QSortFilterProxyModel + QAbstractItemDelegate
Отправлено: fearn0t от Декабрь 15, 2009, 10:36
на счет первого понятно.
на счет второго:
а) заношу данные методом  mapper->submit()
эти данные записываются в базу.
б)
Код
C++ (Qt)
productModel->select();
productView->setItemDelegate(new QSqlRelationalDelegate(this));
прописал и 0 эффекта.
в) У меня есть главная таблица.
представим что в ней отображается значение_1 из таблицы_2 посредством QSqlRelationalDelegate.
открываю диалоговое окно редактирования таблицы_2 и изменяю значение_1.
закрываю диалоговое окно и смотрю на главную таблицу - значение_1 визуально изменилось.
раскрываю выпадающий список и измененное значение_1 пропадает =(





Название: Re: QSortFilterProxyModel + QAbstractItemDelegate
Отправлено: fearn0t от Декабрь 15, 2009, 16:06
сделал интерфейс по-другому, но все равно было бы неплохо получить ответ =))


Название: Re: QSortFilterProxyModel + QAbstractItemDelegate
Отправлено: fearn0t от Декабрь 22, 2009, 00:48
неужели ни у кого даже мыслей нет. Я в qt мало программирую и не разобрался с возможностями. Мне надо свой делегат делать? я вообще без понятия... скажите хоть в какую сторону копать.