Название: QGraphicsItem и определение области, которую надо обновить Отправлено: navrocky от Апрель 25, 2013, 09:55 Делаю нечто аналогичное редактору дорожек в видеоредакторах. Использую для этого QGraphicsScene. Временную линейку хочу сделать одним длинным итемом (наследник QGraphicsRectItem). И возникла проблема узнать область реальной перерисовки для итема, т.к. линейка может быть очень длинной (дни, недели..., в пикселях >100000).
Гуглил и этот форум в том числе, не нашел решения как можно выудить область обновления для итема аналогично QPaintEvent::region() ? Сейчас думаю тупо в лоб определять видимую область графической сцены и мапить ее в координаты итема.. но это как-то не очень красивое решение (ведь обновиться может не вся видимая часть итема и нет смысла заниматься перерисовками того что не изменилось). Что посоветуете? Название: Re: QGraphicsItem и определение области, которую надо обновить Отправлено: GreatSnake от Апрель 25, 2013, 11:11 Имхо, такие вещи нужно делать в QGraphicsScene::drawBackground().
И возникла проблема узнать область реальной перерисовки для итема Код
Название: Re: QGraphicsItem и определение области, которую надо обновить Отправлено: navrocky от Апрель 25, 2013, 11:20 QPainter::clipRegion () - возвращает вседа что-то типа QRectF(-1153,-670 0x0) при любых перерисовках
А вот за QGraphicsScene::drawBackground() спасибо, это лучше вариант, чем я начал городить. |