Russian Qt Forum

Qt => Model-View (MV) => Тема начата: unkeep от Апрель 30, 2013, 09:11



Название: [РЕШЕНО] Сигнал модели отображению
Отправлено: unkeep от Апрель 30, 2013, 09:11
Необходимо в алгоритме фильтрации модели (унаследованной от QSortFilterProxyModel) в некоторых местах посылать сигнал для treeView c индексом, для раскрытия элемента.
пробую так:
часть кода переопределённого filterAcceptsRow:
Код
C++ (Qt)
ViewModel *viewModel = (ViewModel*) this; // because filterAcceptsRow is static function
QModelIndex itemToExpand = columnIndexes.first();
emit viewModel->ExpandMe(itemToExpand);

в конструкторе главного окна соединяю
Код
C++ (Qt)
connect(_controller->GetView(),SIGNAL(ExpandMe(QModelIndex)),_ui->treeView,SLOT(expand(QModelIndex)));
однако не работает...


Название: Re: Сигнал модели отображению
Отправлено: Bepec от Апрель 30, 2013, 09:23
А разве моделька разворачивает итемы? Мб глупый вопрос конечно :)


Название: Re: Сигнал модели отображению
Отправлено: unkeep от Апрель 30, 2013, 09:30
может быть это немного не правильно, но у меня пока есть два варианта:
1)"модель разворачивает treeview"
2)модель запоминает индексы, после пробегаем по вектору с индексами и раскрываем

1ый варик по идее должен отрабатывать быстрее. Так работает "в один проход"
может быть подскажете 3-ий?


Название: Re: Сигнал модели отображению
Отправлено: unkeep от Апрель 30, 2013, 09:54
стоп. зашёл с другой стороны, оказалось, что сойдёт просто развернуть ВСЕ элемнеты после фильтрации.