2015-04-29 1 views
0

Я только что построил чтение-запись TableModel на основе QAbstractTableModel. Работает, но базовые данные могут изменять заголовки столбцов и строк, и я не знаю, как сообщить модели и представления об этом (чтобы представления обновляли заголовки).Как сообщить модели/посмотреть, что базовые данные изменили заголовки таблиц?

Если я изменяю вертикальные заголовки (в данных), а затем вставляю столбец (через модель вида->), то заголовки обновляются. Могу ли я использовать beginInsertingX каким-то особым способом заставить обновление?

+0

посылаете сигнал, когда данные изменяются и выбираются в слоте в вашей таблицеModel? – GPPK

+0

ОК. В моем вопросе неясно - я его отредактирую. – MaciekS

ответ

1

Я думаю, что вы должны вызвать beginInserColumns() прямо перед тем, как начать редактирование базовых данных модели и endInsertColumns(), когда закончите редактирование.

Модель должна автоматически предупреждать все видимые виды, которые необходимы для перерисовки данных. Для радикальных изменений это может быть быстрее, если вы вызываете beginResetModel() и endResetModel()

+0

'beginInsertColumns (...)' всегда заставляет представление вставлять столбцы. ;-) Я подумал, что если использовать некоторые специальные аргументы, его можно было бы избежать, но нет. -Если я использую начало больше, чем конец, приложение выйдет из строя. ** Единственный способ изменить заголовки - использовать 'beginResetModel()' и 'endResetModel()'. ** – MaciekS

Смежные вопросы