Russian Qt Forum
Май 22, 2024, 06:51 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QTable  (Прочитано 11282 раз)
Zmey
Гость
« : Декабрь 20, 2004, 17:01 »

Таблица QTable, если она большая, то еле шевелится, тормозит ужас просто. Я вычитываю из файла строки и записываю их в QTable в 5 колонок, когда строк не много, то всё замечательно, но чем больше становится таблица, тем она медленней заполняется. Вроде сделал, как написано в описании класса в Large tables и как в примере bigtable, но чё-та ничего не помогает. Может кто-нить знает, может я чего делаю не так?
Записан
Sergeich
Гость
« Ответ #1 : Декабрь 21, 2004, 21:09 »

Пример bigtable расчитан на разреженные таблицы.
Если ты хочешь показать большой файл в таблице, подчитывай данные из файла по необходимости. См. Qt Quaterly Выпуск 7 · Q3 · 2003, A Model/View Table for Large Datasets, http://doc.trolltech.com/qq/qq07-big-tables.html
Записан
Zmey
Гость
« Ответ #2 : Декабрь 22, 2004, 10:28 »

Задача такая: есть файл со строками, их там 2 млн. Юзер вводит в окошке строку, и я перебираю строки из файла и сравниваю их со строкой, которую ввел юзер, и если совпадают вывожу на экран в QTable. То есть делаем поиск по файлу. Проблема начинается, если найденно строк больше 20 - 30 тысяч. То есть когда поиск завершен, необходимо все найденные строки иметь на экране, и получается что нет возможности подчитывать данные по необходимости.
А http://doc.trolltech.com/qq/qq07-big-tables.html я читал, что-то ничего полезного не нашел...
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #3 : Декабрь 22, 2004, 12:44 »

То что ты пишешь извечная проблема

задумайся над вопросом

а нафига пользователю 20 тысяч строк

вот например в MSDN слалали ограничение при поиски на 500
и все летает
Записан
Zmey
Гость
« Ответ #4 : Декабрь 22, 2004, 12:56 »

Да я быть может особо не парился, если бы тоже самое не было сделано одним челом на Delphi, и у него все работает как нужно  :cry: Я в таком случае не смогу конкурировать с ним.
Нафига пользователю стока строк не я же решаю... Я ж тока программер... Может пользователь хочет эти 20 тысяч строк получить и сохранить, чтобы потом где-нить обработать.
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #5 : Декабрь 22, 2004, 13:04 »

а как ты все это реализовывал?
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #6 : Декабрь 22, 2004, 13:42 »

Цитата: "Zmey"
Да я быть может особо не парился, если бы тоже самое не было сделано одним челом на Delphi, и у него все работает как нужно  :cry: Я в таком случае не смогу конкурировать с ним.
Нафига пользователю стока строк не я же решаю... Я ж тока программер... Может пользователь хочет эти 20 тысяч строк получить и сохранить, чтобы потом где-нить обработать.


может тогда стоит на лету создавать строки таблиц
есть где то в памяти список
пользователь путешествует по таблице
а ты подкачиваешь ему данные
Записан
Zmey
Гость
« Ответ #7 : Декабрь 22, 2004, 15:03 »

Цитата: "Admin"

может тогда стоит на лету создавать строки таблиц
есть где то в памяти список
пользователь путешествует по таблице
а ты подкачиваешь ему данные

Это хорошая идея Улыбающийся А как определять, какие строки видны, а какие нет?
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #8 : Декабрь 23, 2004, 14:54 »

я просто видел подобную проблему на дельфийских форумах

я думаю примерно так
отображаешь таблицу
10 записей
пользователь двинул scrollbar ты сообщение подхватил
одновил следующее
Записан
Zmey
Гость
« Ответ #9 : Декабрь 23, 2004, 15:15 »

Пацаны, все нормально. Я оказывается делал неправильно. Я сразу делал таблицу в 0 строк, а потом, если нужно вывести строку, делал insertRows и setText. Я этот прием тестировал тока на малых таблицах, и на скорость это не влияло, а на больших оказывается так нельзя, надо сразу делать большую пустую таблицу и потом ее уже заполнять.
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #10 : Декабрь 23, 2004, 15:32 »

тоже логично

ситуация как с vector
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.227 секунд. Запросов: 22.