LINUX.ORG.RU

QTableView, QAbstractTableModel - добавление столбиков, записей


0

0

Создан клас модели даных наследующий QAbstractTableModel. Каким образом можна добавлять или удалять из него столбцы и как при этом динамически отображать перемены. При этом нужно что б виделение (если оно есть) оставалось преждним. Посоветуйте что-то, плс!

Ответ на: комментарий от anonymous

Да, я ступил, теперь понял почему там dynamic_cast, хотя можно было бы даже обойтись qobject_cast'ом.

Но проблема топикстартера, опять-таки если я правильно его понял, в том, что в QAbstractTableModel не реализованы методы insertColumns и removeColumns и он не знает как это сделать.

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

>Но проблема топикстартера, опять-таки если я правильно его понял, в том, что в QAbstractTableModel не реализованы методы insertColumns и removeColumns и он не знает как это сделать.

Если так, то топик-стартеру поможет пример выше, только заменить columnsn на rows. Мой пример работает для меня, так как я знаю, что у меня везде используется QSqlTableModel.

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

Из документации про insertColumns:

The base class implementation does nothing and returns false.

Каким образом ему поможет пустой метод, который только возвращает false? Ему нужно читать про beginInsertColumns, endInsertColumns и ко, либо использовать уже готовую модель вроде той же QSqlTableModel.

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

Для «роботы» с таблицами посмотри на QTableWidget, должно быть идеальным вариантом для тебя.

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

Каким образом ему поможет пустой метод, который только возвращает false? Ему нужно читать про beginInsertColumns, endInsertColumns и ко, либо использовать уже готовую модель вроде той же QSqlTableModel.

Ну он ясно дал понять, что у него уже создан класс модели. Осталось реализовать методы insertRows и deleteRows, как в примере, на что я и указал.

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