Название: Как перерисовать конкретный QTreeWidgetItem? Отправлено: Hordi от Январь 25, 2010, 18:16 Задача такая:
Содержимое некоторых колонок в row рисую сам, событие о необходимости перерисовки приходит в функцию "::event" (картинка для отрисовки создается в отдельном потоке), из этой же функции вызываю нижеприведенный код для перерисовки row - он не работает. Если вызываю функцию типа viewport()->update() - работает, но не всегда, да и не совсем правильно рефрешить все если нужно перерисовать одну запись... Код: xxx::event(QEvent* e) Qt-4.5.3, 4.6.1 Название: Re: Как перерисовать конкретный QTreeWidgetItem? Отправлено: alex12 от Январь 25, 2010, 18:39 Не очень понятно что и как рисуется.
По какому событию? Это событие из модели? Использование делегата? QTreeWidget::setItemWidget() ? Название: Re: Как перерисовать конкретный QTreeWidgetItem? Отправлено: Hordi от Январь 25, 2010, 18:57 Рисуется в
xxx - наследник от QTreeWidget void xxx::drawRow( QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index )const если row выделить мышью или поскролить активно - отрисовывается. Название: Re: Как перерисовать конкретный QTreeWidgetItem? Отправлено: alex12 от Январь 25, 2010, 19:18 Может проще пойти по стандартному пути с использованием делегата?
Код: class MyItemDelegate : public QItemDelegate Код: view->setItemDelegateForColumn(column, new MyItemDelegate); Название: Re: Как перерисовать конкретный QTreeWidgetItem? Отправлено: Hordi от Январь 25, 2010, 19:23 >Может проще...
А что это даст? Я могу конечно ща переписать по-быстрому, но я не вижу принципиальных отличий... Название: Re: Как перерисовать конкретный QTreeWidgetItem? Отправлено: Haccel от Октябрь 12, 2010, 08:02 Я выкрутисля так
Код: // redraw QTreeWidgetItem twi Пока лучше способа не нашёл |