Название: Обновление данных в таблице Отправлено: cub4d от Май 16, 2014, 21:18 Делаю следующее. Написал свою модель от QAbstractTableModel. Привязал к QTableView. По таймеру (0.5 сек) обновляю список процессов и заношу в таблицу, при этом вычисляя разницу между предыдущем и обновленным списком процессов и, в соответствии с этой разницей, добавляю или удаляю строки в таблице, а затем перезаписываю данные. Проблема в следующем: при отображении таблицы, данные никак не меняются (например процент использования CPU, который обновляется достаточно интенсивно для некоторых процессов). Однако, если выделить строку или проскроллить таблицу туда-сюда, то они обновляются... Какая-то проблема с отрисовкой что-ли) Как это исправить? Заранее благодарен)
Код: void ProcessMonitor::updateProcessList() Название: Re: Обновление данных в таблице Отправлено: kibsoft от Май 16, 2014, 22:02 Наследоваться от QAbstractTableModel и код изменения модели обернуть в
Код: beginResetModel(); Таким образом, данные будут перезапрашиваться вьюшкой и соответственно обновляться/отрисовываться. Название: Re: Обновление данных в таблице Отправлено: cub4d от Май 16, 2014, 23:43 Уже разобрался. Проблема была в том, что не отправлял сигнал dataChanged() в методе setData(). Но всё-равно спасибо, ваше решение тоже работает, возьму на заметку)
|