Russian Qt Forum

Qt => Model-View (MV) => Тема начата: yuriyb от Август 02, 2011, 16:22



Название: Сигналы между QTreeView(QAbstractItemModel) и QListView(QSortFilterProxyModel)
Отправлено: yuriyb от Август 02, 2011, 16:22
Всем привет! В Qt немного нуб. сильно не пинайте ;)

Ребята не много недокуриваю как посылать сигналы между *View, если один из них на основной модели, а второй на SortFilterProxyModel.
Код:
    
tview->setModel(Application::instance()->favoritesManager()->treeFolderItemModel());
lview->setModel(Application::instance()->favoritesManager()->treeItemModel());

connect(tview, SIGNAL(clicked(QModelIndex)), lview, SLOT(setRootIndex(QModelIndex)));
в дебаг вьювере: QAbstractItemView::setRootIndex failed : index must be from the currently set model

treeItemModel - основная модель
treeFolderItemModel - SortFilterProxyModel над основной моделью.

Ведь вроде как mapFrom/To методы в SortFilterProxyModel уже реализованы? Помогите плиз.


Название: Re: Сигналы между QTreeView(QAbstractItemModel) и QListView(QSortFilterProxyModel)
Отправлено: Kunashir от Август 18, 2011, 15:30
Если я правильно понял в treeView, и в прокси-модель передается индекс из модели источника, что не верно.
Может попробовать так:

Код:
 QModelIndex i = treeFolderItemModel ->mapFromSource(index); //пересчитываем индекс из источника в прокси
 lview.setRootIndex (i);