Название: реакция на изменение элементов в модели Отправлено: itan от Август 11, 2006, 10:04 Есть такая задача:
предположим существует модель порожденная от QAbstractItemModel и существует несколько вьюх (пусть будет QComboBox) использующих эту модель. В некоторый момент времени наступает событие, которое меняет порядок элементов в модели. Вопрос в следующем - как правильно всем вьюхам прореагировать на это изменение? Привожу словестный пример для разъяснения: пусть модель предоставляет для вывода 3 строки: "1 строка" "2 строка" "3 строка" соответственно пусть эти данные отображаются в 2-х комбобоксах: у 1-го текущий элемент "1 строка" у 2-го текущий элемент "2 строка" потом в модели происходит смена порядка элементов: что-то вроде: Код: QList<QString> m_items; Пусть поменялись 1 и 2 строки местами т.е. получаем: "2 строка" "1 строка" "3 строка" И что же мы видем в комбобоксах: у 1-го текущий элемент "2 строка" у 2-го текущий элемент "1 строка" т.е. данные в них обновились, а текущие индексы не поменялись! Может есть какой-нибудь стандартный механизм отслеживания таких изменений? Никто не сталкивался? добавлено спустя 1 час 6 минут: В принципе проблема решается легко - т.к. стандартных механизмов не существует, то достаточно определить свой новый сигнал в модели: Код: ... Код: void CModel::moveItem(int idxFrom, int idxTo) А потом в виджите присоеденить этот сигнал к слоту, который будет обновлять текущие индексы нужных вьюх. |