11 / 11 / 3
Регистрация: 06.08.2011
Сообщений: 208
|
||||||||||||||||
1 | ||||||||||||||||
QAbstractTableModel19.01.2017, 15:41. Показов 7004. Ответов 9
Метки нет (Все метки)
Добрый день.
Помогите разобраться как правильно использовать QAbstractTableModel Пишу так:
error: cannot declare variable 'model' to be of abstract type 'TableModel' Заранее спасибо.
0
|
19.01.2017, 15:41 | |
Ответы с готовыми решениями:
9
Разобраться QAbstractTableModel QTableView и QAbstractTableModel Сортировка в QAbstractTableModel Наследование от QAbstractTableModel |
Диссидент
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
|
|
19.01.2017, 16:30 | 2 |
Имхо, в классе QAbstractTableModel есть чисто виртуальные функции. И их надо перегрузить в производном классе.
Добавлено через 10 минут Эти чисто виртуальные функции могут быть определены в QAbstractItemModel, от которого QAbstractTableModel наследуется.
1
|
11 / 11 / 3
Регистрация: 06.08.2011
Сообщений: 208
|
|
20.01.2017, 08:24 [ТС] | 3 |
Вот это то у меня и не получается, не пойму как перегружать виртуальные функции...
0
|
20.01.2017, 11:54 | 4 |
Сообщение было отмечено Ирина197708 как решение
Решение
Ирина197708, В хедере правой кнопкой мыши по имени класса от которого наследуется твой. Выбираешь пункт рефакторинг, в нём есть пункт добавления вирт. функции
2
|
11 / 11 / 3
Регистрация: 06.08.2011
Сообщений: 208
|
|
20.01.2017, 12:29 [ТС] | 5 |
Skjame спасибо, я даже и не знала)
0
|
184 / 176 / 57
Регистрация: 25.09.2014
Сообщений: 828
|
||||||
20.01.2017, 12:33 | 6 | |||||
Что перегружать - описано в классе QAbstractTableModel в секции Subclassing.
Как перегружать виртуальные функции - в книге по C++. Что должно быть в перегруженных функциях - понятно из их названия. Каждый создаваемый тобой объект модели должен работать с какими-то данными. Поэтому в конструктор твоего класса передаешь эти данные по указателю или ссылке. Теперь твой класс точно знает, с какими данными работает. А значит в функции, например, количества строк, ты можешь вернуть количество элементов в этих данных. Если предполагается, что данные - это лист неких структур, то функция количества строк может вернуть количество элементов в листе структур. А функция количества столбцов - количество элементов в структуре. И т.д. в общем-то. Хитрая функция получения родительского элемента нужна только если у тебя есть грубо говоря иерархия итемов в таблице. Если у тебя обычная таблица аля матрица, то можешь взять эти (нарыл в интернете, ибо сам не врубался тогда):
1
|
Pied Piper
236 / 227 / 57
Регистрация: 15.01.2013
Сообщений: 855
|
|
20.01.2017, 13:54 | 7 |
0
|
11 / 11 / 3
Регистрация: 06.08.2011
Сообщений: 208
|
|||||||||||||||||||||
20.01.2017, 20:07 [ТС] | 8 | ||||||||||||||||||||
Горбаг и Skjame спасибо, что пнули в нужном направлении)
Переписала так:
mainwindow.cpp:16: ошибка: 'QAbstractItemModel' is an inaccessible base of 'MyTableModel' ui->tableView->setModel(model); Не пойму почему 'QAbstractItemModel' я ведь использую QAbstractTableModel
0
|
11 / 11 / 3
Регистрация: 06.08.2011
Сообщений: 208
|
|||||||||||
23.01.2017, 14:57 [ТС] | 10 | ||||||||||
Что то получилось, только какая то уродливая таблица (((
Как убрать чекбоксы из нее, видимо можно как-то их скрыть?
Заранее спасибо.
0
|
23.01.2017, 14:57 | |
23.01.2017, 14:57 | |
Помогаю со студенческими работами здесь
10
Заполнение QAbstractTableModel Поиск в QTableView (QAbstractTableModel) QAbstractTableModel и большой объем данных Удаление последнего столбца QAbstractTableModel Как связать QAbstractTableModel с таблицей БД? Создание табличной модели от QAbstractTableModel. Сортировка Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |