Где отображать 150 тысяч строк? |
Здравствуйте, гость ( Вход | Регистрация )
Где отображать 150 тысяч строк? |
kalombo |
19.10.2008, 18:21
Сообщение
#1
|
Студент Группа: Участник Сообщений: 37 Регистрация: 5.8.2008 Пользователь №: 252 Спасибо сказали: 0 раз(а) Репутация: 0 |
Есть файл, содержит 150 тысяч строк, пробовал отображать его в QListWidget, то что на загрузку из файла требуется время - это, в принципе, терпимо, но вот то, что при добавлении еще одной строчки в виджет требуется столько же времени - это уже неприемлимо. Подскажите как можно это исправить? Начал читать про модели - в голове пока сумбур. Кто-нибудь скажите как это реализовать и если с помощью моделей, то проговорите основные моменты пожалуйста.
|
|
|
molchanoviv |
19.10.2008, 18:36
Сообщение
#2
|
Старейший участник Группа: Сомодератор Сообщений: 597 Регистрация: 18.7.2008 Из: Саратов Пользователь №: 238 Спасибо сказали: 41 раз(а) Репутация: 5 |
я немного не понял что тебе нужно, но рискну предположить что тебе нужно что-то типа QTextEdit
|
|
|
ViGOur |
19.10.2008, 19:23
Сообщение
#3
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Model/View поможет.
Ты лчше скажи, что не понятно, так будет легче объяснить. |
|
|
kalombo |
19.10.2008, 20:09
Сообщение
#4
|
Студент Группа: Участник Сообщений: 37 Регистрация: 5.8.2008 Пользователь №: 252 Спасибо сказали: 0 раз(а) Репутация: 0 |
Ты лчше скажи, что не понятно, так будет легче объяснить. Гм. То есть нужно создать свой класс модели? Нужно переписать rowCount(), data() и setData()? Как их переписать, опять же, чтобы достигнуть моей цели? Вообще, непонятно, как связана модель, если тормозит представление(listView), при отображении 150 тысяч строк, точнее как сделать такую модель, чтобы этого не было, я не понимаю как на это(тормоза в представлении) можно повлиять посредством модели. Где хранить данные? Всё-таки, если бы я не понимал что-то конкретное, я бы это и спросил, а так, мне кажется, лучше все по шагам объяснить. |
|
|
molchanoviv |
19.10.2008, 20:25
Сообщение
#5
|
Старейший участник Группа: Сомодератор Сообщений: 597 Регистрация: 18.7.2008 Из: Саратов Пользователь №: 238 Спасибо сказали: 41 раз(а) Репутация: 5 |
а что ты вообще хочешь сделать
|
|
|
Litkevich Yuriy |
20.10.2008, 0:24
Сообщение
#6
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
как связана модель, если тормозит представление(listView), при отображении 150 тысяч строк, В связке модель/предстваление представление отображает только те данные которые необходимы в данный момент, а не все как в виджете. Т.е. на графику минимум рисурсов расходуется. Для большого кол-ва данных не хранящихся в БД, лучше наследоватся от QAbstractItemModel. Покрайней мере такой вариант на форумах решено считать более подходящим. А вообще лучше данные в БД складывать при таком кол-ве.
|
|
|
kalombo |
20.10.2008, 7:06
Сообщение
#7
|
Студент Группа: Участник Сообщений: 37 Регистрация: 5.8.2008 Пользователь №: 252 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
kalombo |
20.10.2008, 7:39
Сообщение
#8
|
Студент Группа: Участник Сообщений: 37 Регистрация: 5.8.2008 Пользователь №: 252 Спасибо сказали: 0 раз(а) Репутация: 0 |
как связана модель, если тормозит представление(listView), при отображении 150 тысяч строк, В связке модель/предстваление представление отображает только те данные которые необходимы в данный момент, а не все как в виджете. Т.е. на графику минимум рисурсов расходуется. Для большого кол-ва данных не хранящихся в БД, лучше наследоватся от QAbstractItemModel. Покрайней мере такой вариант на форумах решено считать более подходящим. А вообще лучше данные в БД складывать при таком кол-ве.Вот пока не понимаю я, как заставить представление отображать только те данные, которые необходимы в данный момент. А QAbstractListModel не подойдет? Вроде у меня просто список. В общем, читаю по-маленьку дальше про модели... |
|
|
Litkevich Yuriy |
20.10.2008, 8:04
Сообщение
#9
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
SergSh |
27.8.2009, 11:18
Сообщение
#10
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 27.8.2009 Пользователь №: 1024 Спасибо сказали: 3 раз(а) Репутация: 0 |
Есть файл, содержит 150 тысяч строк, пробовал отображать его в QListWidget, то что на загрузку из файла требуется время - это, в принципе, терпимо, но вот то, что при добавлении еще одной строчки в виджет требуется столько же времени - это уже неприемлимо. Подскажите как можно это исправить? Начал читать про модели - в голове пока сумбур. Кто-нибудь скажите как это реализовать и если с помощью моделей, то проговорите основные моменты пожалуйста. Времени прошло много, но все-равно дам совет: 1. Пробовал с QListView на файлах до 2Гб 2. Нужна модель, которая не будет хранить в себе все строки, а считывать их по мере просмотра (хотя 150000 строк это не много) 3. И самое главное! Для того, чтобы QListView не сканировал все строки при инициализации ему нужно указать размеры строки через setGridSize |
|
|
Текстовая версия | Сейчас: 30.1.2025, 5:53 |