Russian Qt Forum
Ноябрь 24, 2024, 09:14
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
Как реализовать большое число строк в QAbstractTableModel
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Как реализовать большое число строк в QAbstractTableModel (Прочитано 7446 раз)
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Как реализовать большое число строк в QAbstractTableModel
«
:
Июнь 16, 2014, 13:36 »
Здравствуйте всем!
Не совсем хорошо представляю, как можно унаследоваться от класса QAbstractTableModel (а также QTableView), чтобы реализовать возможность вывода большого количества строк, которое превышает int.
Прошу помочь.
Записан
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: Как реализовать большое число строк в QAbstractTableModel
«
Ответ #1 :
Июнь 16, 2014, 13:43 »
Цитата: __Heaven__ от Июнь 16, 2014, 13:36
Не совсем хорошо представляю, как можно унаследоваться от класса QAbstractTableModel (а также QTableView), чтобы реализовать возможность вывода большого количества строк, которое превышает int.
Никак. Там все завязано на int.
Но столько строк выводить не нужно. Человек все равно ничего с таким объемом сделать не сможет. Лучше сразу вводить системы фильтров.
Записан
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3260
Re: Как реализовать большое число строк в QAbstractTableModel
«
Ответ #2 :
Июнь 17, 2014, 23:25 »
я боюсь спросить - а памяти-то хватит на кол-во строк больше инта?) а по сабжу - никак, да... Да и вьюхи стандартные могут не потянуть >50k строк, придётся свою писать
Записан
Bepec
Гость
Re: Как реализовать большое число строк в QAbstractTableModel
«
Ответ #3 :
Июнь 18, 2014, 02:53 »
Что говорить о int строк, если оно при 10к на экране тормозить начинает
А таки Old дело говорит - пользователю дай боже в 5 строках разобраться. Зачем ему int строк?
Записан
Fregloin
Супер
Offline
Сообщений: 1025
Re: Как реализовать большое число строк в QAbstractTableModel
«
Ответ #4 :
Июнь 18, 2014, 19:35 »
Загружать данные частями.
Записан
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: Как реализовать большое число строк в QAbstractTableModel
«
Ответ #5 :
Июнь 18, 2014, 20:21 »
Цитата: Fregloin от Июнь 18, 2014, 19:35
Загружать данные частями.
Проблема не в реализации, а в том, что человек физически не сможет оперировать (просмотреть, проанализировать и т.д.) большим количеством данных. Попробуйте найти что-то нужное в таблице из хотя бы 1000 строк.
Записан
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: Как реализовать большое число строк в QAbstractTableModel
«
Ответ #6 :
Июнь 24, 2014, 11:38 »
Возможно, я не правильно выразился или не правильно понимаю назначение класса...
На сколько я понимаю, при создании модели таблицы нужно минимум переопределить функции rowCount(), columnCount(), и data().
Меня интересует не одновременное отображение большого количества значений на экране, а отображение ячеек, с индексом строки выше пределов int.
Грубо говоря, как реализовать hex-редактор с поддержкой больших файлов?
Записан
Bepec
Гость
Re: Как реализовать большое число строк в QAbstractTableModel
«
Ответ #7 :
Июнь 24, 2014, 12:00 »
Сделать его "скользящим" по файлу придётся вам.
Отобразить и быстро работать с большим объёмом данных не получится. А вот читать по частям файл и выводить на экран в зависимости от желания пользователя вы можете уже сейчас.
QFile::seek вам в помощь.
Записан
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: Как реализовать большое число строк в QAbstractTableModel
«
Ответ #8 :
Июнь 24, 2014, 12:35 »
Цитата: Bepec от Июнь 24, 2014, 12:00
Сделать его "скользящим" по файлу придётся вам.
Отобразить и быстро работать с большим объёмом данных не получится. А вот читать по частям файл и выводить на экран в зависимости от желания пользователя вы можете уже сейчас.
QFile::seek вам в помощь.
Да, я думал насчёт реализации в методе data() QFile::seek, QFile::read. Но каким образом в метод дата передастся переменная row = 5 000 000 000? Внедрять какой-нибудь комбо, который будет делить файл на несколько частей и предлагать пользователю выбор типа "работать начиная с 00000000 байта", "работать работать начиная с 80000000 байта" и т.д. не хотелось бы.
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Как реализовать большое число строк в QAbstractTableModel
«
Ответ #9 :
Июнь 24, 2014, 12:37 »
Цитата: __Heaven__ от Июнь 24, 2014, 11:38
Грубо говоря, как реализовать hex-редактор с поддержкой больших файлов?
Давно (неск лет назад) была подобная попытка (для больших текстовых файлов), я участвовал. 2 варианта исходников были - но вот где, не помню
Записан
Bepec
Гость
Re: Как реализовать большое число строк в QAbstractTableModel
«
Ответ #10 :
Июнь 24, 2014, 14:17 »
Сделайте проще - соедините view и свой progressBar, в котором вы будете делать что хотите
Записан
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: Как реализовать большое число строк в QAbstractTableModel
«
Ответ #11 :
Июнь 24, 2014, 15:10 »
Цитата: Bepec от Июнь 24, 2014, 14:17
Сделайте проще - соедините view и свой progressBar, в котором вы будете делать что хотите
не совсем понимаю....
Записан
Bepec
Гость
Re: Как реализовать большое число строк в QAbstractTableModel
«
Ответ #12 :
Июнь 24, 2014, 16:43 »
ммм...
Я решал эту проблему, создавая собственный View, совмещая его с progressBar'ом.
Собственно почему я так поступил - при наследовании от QAbstractListModel и иже с ним и установкой количества строк в 50-70000 начинались лаги. Насколько помню там View запрашивает их все при установке модели.
Потому я совместил написал свой View совмещенный с моделью.
Записан
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: Как реализовать большое число строк в QAbstractTableModel
«
Ответ #13 :
Июнь 24, 2014, 16:56 »
Цитата: Bepec от Июнь 24, 2014, 16:43
ммм...
Я решал эту проблему, создавая собственный View, совмещая его с progressBar'ом.
Собственно почему я так поступил - при наследовании от QAbstractListModel и иже с ним и установкой количества строк в 50-70000 начинались лаги. Насколько помню там View запрашивает их все при установке модели.
Потому я совместил написал свой View совмещенный с моделью.
progressBar - Вы scroll имеете в виду? А за размер таблицы взять какое-нибудь небольшое число?
Боюсь, что опыта не хватит мне
не совсем представляю, как там будут работать клавиши вниз, вверх, PgDn, PgUp, ctrl+home, ctrl+end и подобные... Не представляю, как сделать так, чтобы вьюха не спотыкалась при скроллинге клавиатурой.
Записан
Bepec
Гость
Re: Как реализовать большое число строк в QAbstractTableModel
«
Ответ #14 :
Июнь 24, 2014, 17:03 »
тьфу. ScrollBar конечно
А за размер таблицы взять размер файла, поделённый на текущее количество строк в View
Ну и размер строки конечно учитывается.
Собственно т.к. самописное - то самому писать поведение клавиш
Записан
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...