LINUX.ORG.RU

QAbstractTableModel и dataChanged

 


0

1

Есть наследник QAbstractTableModel для которого перегружены insertRows и removeRows. Что-то никак в толк не возьму, нужно ли из них кидать dataChanged (а ведь data то и в самом деле changed) и если да, то какой диапазон указывать. В документации по этому поводу ничего не нашёл. Как с этим лучше поступить?

★★★★★

Кидать надо.
Что и как - можно посмотреть в исходниках кутей.

trex6 ★★★★★
()

If you implement your own model, you can reimplement this function if you want to support insertions. Alternatively, you can provide your own API for altering the data. In either case, you will need to call beginInsertRows() and endInsertRows() to notify other components that the model has changed.

schizoid ★★★
()
Ответ на: комментарий от schizoid

Это-то у меня есть. Но при этом сигнал dataChanged во время удаления строк не высылается.

KblCb ★★★★★
() автор топика
Ответ на: комментарий от solovey

А createIndex то мне зачем? Я не пойму что считать диапазоном, а не как создавать индексы.

KblCb ★★★★★
() автор топика

Вызывай beginInsertRows(), endInsertRows() и все.

bjorn
()
Ответ на: комментарий от bjorn

Ммм… Не понял. Почему? В случае добавления или удаления строки, данные в модели явным образом меняются. В чём разница?

KblCb ★★★★★
() автор топика
Ответ на: комментарий от KblCb

В случае добавления или удаления строки, данные в модели явным образом меняются.

dataChanged - это для setData.

В случае добавления или удаления строки или столбца данные в модели не меняются. Данные - это содержимое ячеек, а не структура модели.

schizoid ★★★
()
Ответ на: комментарий от KblCb

Но при этом сигнал dataChanged во время удаления строк не высылается

Зато высылаются аж 2 сигнала rowsAboutToBeRemoved и rowsRemoved (из недр beginRemoveRows/endRemoveRows). Предаставление получает их и все пучком.

для которого перегружены insertRows и removeRows

В общем необязательно. Чаще удобнее замутить собсвтенные методы удаления и вставки, которые сразу удаляют/вставляют нужные данные, а не пустые ячейки.

no-such-file ★★★★★
()
Ответ на: комментарий от schizoid

Хм… Спасибо большое. Я как-то не просёк этот момент в документации.

KblCb ★★★★★
() автор топика
Ответ на: комментарий от no-such-file

Спасибо. Так понятнее.

KblCb ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.