Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Zmey от Декабря 20, 2004, 17:01



Название: QTable
Отправлено: Zmey от Декабря 20, 2004, 17:01
Таблица QTable, если она большая, то еле шевелится, тормозит ужас просто. Я вычитываю из файла строки и записываю их в QTable в 5 колонок, когда строк не много, то всё замечательно, но чем больше становится таблица, тем она медленней заполняется. Вроде сделал, как написано в описании класса в Large tables и как в примере bigtable, но чё-та ничего не помогает. Может кто-нить знает, может я чего делаю не так?


Название: QTable
Отправлено: Sergeich от Декабря 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


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


Название: QTable
Отправлено: Admin от Декабря 22, 2004, 12:44
То что ты пишешь извечная проблема

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

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

вот например в MSDN слалали ограничение при поиски на 500
и все летает


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


Название: QTable
Отправлено: Racheengel от Декабря 22, 2004, 13:04
а как ты все это реализовывал?


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


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


Название: QTable
Отправлено: Zmey от Декабря 22, 2004, 15:03
Цитата: "Admin"

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

Это хорошая идея :) А как определять, какие строки видны, а какие нет?


Название: QTable
Отправлено: Admin от Декабря 23, 2004, 14:54
я просто видел подобную проблему на дельфийских форумах

я думаю примерно так
отображаешь таблицу
10 записей
пользователь двинул scrollbar ты сообщение подхватил
одновил следующее


Название: QTable
Отправлено: Zmey от Декабря 23, 2004, 15:15
Пацаны, все нормально. Я оказывается делал неправильно. Я сразу делал таблицу в 0 строк, а потом, если нужно вывести строку, делал insertRows и setText. Я этот прием тестировал тока на малых таблицах, и на скорость это не влияло, а на больших оказывается так нельзя, надо сразу делать большую пустую таблицу и потом ее уже заполнять.


Название: QTable
Отправлено: Admin от Декабря 23, 2004, 15:32
тоже логично

ситуация как с vector