Как создать модель для QTableView? |
Здравствуйте, гость ( Вход | Регистрация )
Как создать модель для QTableView? |
RazrFalcon |
27.4.2011, 17:48
Сообщение
#1
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
С QTableView никогда не работал.
При работе с SQL все просто:
А как самому создать таблицу? Без использования SQL? К примеру 5х100. Пробовал QStandardItemModel - вышло. Но пишут что лучше использовать QAbstractItemModel - выше скорость. А как им пользоваться вообще не пойму. Можно пример заполнения QTableView, к примеру, единицами, и размером 5х10. |
|
|
silver47 |
27.4.2011, 17:58
Сообщение
#2
|
Активный участник Группа: Участник Сообщений: 356 Регистрация: 1.4.2010 Пользователь №: 1584 Спасибо сказали: 40 раз(а) Репутация: 6 |
Таблица нужна для размещения данных из БД? Тогда QSqlQueryModel & QtableView. Можно воспользоваться и QTableWidget. Могу выложить примеры использования и того и другого.
UPD: понял под рукой пример использования QAbstractItemModel из книги, но он очень запутанный, там безполлитры не разберешься Сообщение отредактировал silver47 - 27.4.2011, 18:08 |
|
|
RazrFalcon |
27.4.2011, 18:24
Сообщение
#3
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Я об этом же.
Из БД заполнить таблицу - просто. А мне нужен аналог QTableWidget. Но так, как он, теоретически, более медленный - хочется через QTableView + QAbstractItemModel сделать. Примеров кучу пересмотрел, но что то вообще не пойму. Таблица будет от 500 строк и до 10000 и больше. |
|
|
silver47 |
27.4.2011, 18:31
Сообщение
#4
|
Активный участник Группа: Участник Сообщений: 356 Регистрация: 1.4.2010 Пользователь №: 1584 Спасибо сказали: 40 раз(а) Репутация: 6 |
Он не теоретически, он реально более медленный.... Читал по книге там разбирается одно приложение на примере QStandertItemModel, а потом оно же переписывается под QAbstractItemModel. Разобрал как QStandartItemModel работает, а вот до QAbstractItemModel не дошел, времени не хватило
|
|
|
RazrFalcon |
27.4.2011, 18:48
Сообщение
#5
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Ясно. Ну значит в правильном направлении иду. Так как 1000 сток грузится 30сек, а это долго.
Ждемс советы опытных Qt-ков. |
|
|
qwerty |
27.4.2011, 20:48
Сообщение
#6
|
Новичок Группа: Новичок Сообщений: 2 Регистрация: 29.3.2011 Пользователь №: 2553 Спасибо сказали: 0 раз(а) Репутация: 0 |
у меня вопрос почти из той же оперы унаследовал класс
в коде делаю m_model = new mySQLTable(this); m_model->setQuery("запрос SELECT......" ); но из-за кое каких нюансов с бд нужно некоторые значение ячеек изменить и вывести их во вьюху не делая ни каких изменений в бд делаю так
и не один из этих вариантов не работает так как мне хочется при всех этих вызывах измененной вижу только самую последнюю строку во вьюхе а другие остаются без изменений куда копать? в чем может быть проблема? з.ы. Qt version 4.7.1 |
|
|
RazrFalcon |
1.5.2011, 8:15
Сообщение
#7
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Итак, все что получилось, так это переписать пример simpleModel под себя.
Вопрос вот в чем: мне что, надо все функции самому написать? Заполнения, очистки и тд. Неужели нет способа по проще? Неужели ни кто не делал подобного, и не может поделится исходником? Я уже неделю долблю эту таблицу, а результат это таблица с двумя столбцами и все. Сообщение отредактировал RazrFalcon - 1.5.2011, 8:16 |
|
|
wiz29 |
3.5.2011, 8:58
Сообщение
#8
|
Старейший участник Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: 12 |
Итак, все что получилось, так это переписать пример simpleModel под себя. Вопрос вот в чем: мне что, надо все функции самому написать? Заполнения, очистки и тд. Неужели нет способа по проще? Неужели ни кто не делал подобного, и не может поделится исходником? Я уже неделю долблю эту таблицу, а результат это таблица с двумя столбцами и все. 1. Да, большинство виртуальных функций приходится реализовывать самому для конкретной модели данных. 2. Любая модель данных (оптимизированная), априори допускает некоторые вещи: например, частые вставки в модель, или наоборот редкие вставки и частые обращения к процедурам поиска, соответственно подобные вещи отражаются в модели хранения - жертвуют, например, памятью в угоду скорости поиска, универсальных средств думаю не найти, иначе стандартная модель от тролей была бы применима практически всегда. Необязательно, например, что все элементы должны храниться в оперативной памяти и тп, оч много тонкостей, которые необходимо учитывать для получения оптимальной, с точки зрения твоей задачи, модели данных. |
|
|
RazrFalcon |
3.5.2011, 15:21
Сообщение
#9
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Вот оно что, тогда понятно.
Пока пересел на QStandardItemModel, пока что хватает. |
|
|
wiz29 |
3.5.2011, 15:25
Сообщение
#10
|
Старейший участник Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: 12 |
Для небольшого количества элементов обычно достаточно стандартной реализации.
|
|
|
Текстовая версия | Сейчас: 27.12.2024, 13:42 |