Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > QAbstractItemModel ?????


Автор: plica98 4.2.2013, 11:56
Добрый день, уважаемые Qt-шники.

Нужен Ваш совет.

Может быть уже кто-нибудь сталкивался с аналогичной задачей ?

Есть массив структур с дискретными параметрами (около 3000 параметров). 
Динамика изменения параметров не очень большая (15-20 параметров в секунду).
Сбор параметров по RS485 и размещение их в структурах осуществляется в отдельном потоке.
Еще один поток обеспечивает передачу этих параметров (из массива структур) по Ethernet.

Как лучше организовать просмотр текущего состояния этих параметров, чтобы не очень чувствовать торможение ?

За ранее благодарю за помощь и совет.

Автор: _GRIN_ 5.2.2013, 14:36
Цитата(plica98 @  4.2.2013,  09:56 Найти цитируемый пост)

Есть массив структур с дискретными параметрами (около 3000 параметров). 
Динамика изменения параметров не очень большая (15-20 параметров в секунду).
Сбор параметров по RS485 и размещение их в структурах осуществляется в отдельном потоке.
Еще один поток обеспечивает передачу этих параметров (из массива структур) по Ethernet.

Как лучше организовать просмотр текущего состояния этих параметров, чтобы не очень чувствовать торможение ?


Я видимо не понимаю вопроса.

Меняешь данные в своём масиве, затем посылаешь сигнал dataChanged - то как это отобразиться - дело соответствоющего "просмоторщика".
Если данные добавляешь/удаляешь то сначала вызываешь QAbstractItemModel::begin< Insert|Remove>Rows() - а после добавления/удаления, QAbstractItemModel::end< Insert|Remove>Rows(), соответственно. Аналогично для колонок.

Сами данные модель возвращает по запросу (при вызове виртуальной функции QAbstractItemModel::data()) - теоретически возможно, что никакой просмотрщик в момент изменений вообще не отображется и данные модели ему не нужны =).

Надеюсь это как-то поможет =)

Автор: plica98 6.2.2013, 08:14
GRIN, спасибо.

Цитата(_GRIN_ @  5.2.2013,  14:36 Найти цитируемый пост)
то как это отобразиться - дело соответствоющего "просмоторщика".




Я как раз и хотел получить совет по "просмотрщику".

Как лучше организовать просмотр текущего состояния этих параметров, чтобы не очень чувствовать торможение ?

Автор: _GRIN_ 6.2.2013, 10:08
Цитата(plica98 @  6.2.2013,  06:14 Найти цитируемый пост)
Как лучше организовать просмотр текущего состояния этих параметров, чтобы не очень чувствовать торможение ?


Советую для начала подцепить к модели подходящий view, имеющийся в Qt ( QTableView, QTreeView, etc ... ) - скорее всего его производительность тебя удовлетворит. Если же нет, то по крайней мере ты точно увидишь в какой случае есть тормоза, т.е. какие именно случаи надо оптимизировать.
Оптимизировать заранее - плохая практика =)

Автор: plica98 6.2.2013, 10:23
Цитата(_GRIN_ @  6.2.2013,  10:08 Найти цитируемый пост)
Советую для начала подцепить к модели подходящий view, имеющийся в Qt ( QTableView, QTreeView, etc ... ) - скорее всего его производительность тебя удовлетворит



GRIN, еще раз спасибо. Буду пробовать, я ведь только учусь в Qt.


Автор: _GRIN_ 6.2.2013, 10:42
Цитата(plica98 @  6.2.2013,  08:23 Найти цитируемый пост)
я ведь только учусь в Qt


Я тоже, просто видимо чуть раньше приступил =)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)