tacacs
Гость
|
|
« : Сентябрь 12, 2007, 16:48 » |
|
Привет всем.
Клепаю приложение для мониторинга логов. Логи сохраняются в базе (Postgres). Создаю модель, порожденную от QSqlQueryModel и связываю ее с QTableView. Все работает замечательно, логи подгружаются по мере просмотра, памяти много не жрет, хорошо...
Записи в логе, естественно, периодически добавляются, добавляет их другая программа. Мониторная программа, по замыслу, должна работать сутками, т.е. все изменения в логе должны отображаться по мере возникновения.
Проблема в том, что записей много, вариант периодического выполнения
model->setQuery(...); view->setModel(model);
не проканывает, ибо медленно, даже если период сделать полминуты, раз в полминуты программа секунд на 5 встает колом, а это неправильно.
Пробовал вариант периодического выполнения
model->query()->exec();
Работает побыстрее (хотя все равно видно, что тормозит), но визуальное обновление во вьюшке происходит только под Linux, в Венде же ничего не обновляется, а надо чтобы работало одинаково.
Отказываться от QSqlQueryModel и разрабатывать модель на базе QAbstract... не хочется, так как очень спасает механизм динамической подгрузки записей в QSqlQueryModel, самому писать такое лень, да и времени мало.
Использую Qt 4.2.3
Всем заранее спасибо
|