Название: QTableView и обновление данных Отправлено: joffadark от Март 24, 2016, 15:43 Здравствуйте, уважаемые форумчане.
Реализовал наследника QAbstractTableModel, который подключается к QTableView, соответственно. Наследник предоставляет данные в отображение напрямую из "физической" модели (ну, скажем, это вектор чисел). Задача вот в чем : вектор этих данных может быть изменен вне модели (туда могут быть добавлены или удалены элементы). Но прямое изменение данных в векторе не проявляется в отображении. Соответственно, необходимо оповещать каким-то образом QTableView, что был изменен rowCount в модели ) Подскажите пожалуйста, как можно оповестить QTableView об изменении количества элементов в модели? Название: Re: QTableView и обновление данных Отправлено: gil9red от Март 24, 2016, 16:10 В модели посылать сигнал void QAbstractItemModel::dataChanged ( const QModelIndex & topLeft, const QModelIndex & bottomRight ) [signal]
Название: Re: QTableView и обновление данных Отправлено: joffadark от Март 24, 2016, 20:51 В модели посылать сигнал void QAbstractItemModel::dataChanged ( const QModelIndex & topLeft, const QModelIndex & bottomRight ) [signal] Спасибо за ответ! Попробую. Хочу спросить : если использовать для отображения прокси-модель, а сигнал посылать из модели-источника этой прокси модели, сработает ли цепочка, обновится ли отображение? Название: Re: QTableView и обновление данных Отправлено: gil9red от Март 24, 2016, 21:32 В модели посылать сигнал void QAbstractItemModel::dataChanged ( const QModelIndex & topLeft, const QModelIndex & bottomRight ) [signal] Спасибо за ответ! Попробую. Хочу спросить : если использовать для отображения прокси-модель, а сигнал посылать из модели-источника этой прокси модели, сработает ли цепочка, обновится ли отображение? Думаю, да Название: Re: QTableView и обновление данных Отправлено: joffadark от Март 24, 2016, 23:25 emit dataChanged(...), к сожалению, не помог.
Добавление и удаление элементов из-вне завернул в отдельные публичные методы наследника модели. В этих методах, изменение "физической" модели обернул в beginInsertRows / endInsertRows и beginRemoveRows / endRemoveRows, соответственно. Теперь отображение корректно обновляется. Название: Re: QTableView и обновление данных Отправлено: Bepec от Март 25, 2016, 00:07 Некорректно поставлен вопрос.
Изменение - dataChanged. Добавление - beginInserted. Удаление - beginRemove. |