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