Краска QGraphicsItem не вызывается

я использую QGraphicsView, QGrapichsScene а также QGraphicsItem для рисования некоторых диаграмм. Я реализовал QGraphicsItem::paint функция для рисования текста (значения диаграмм), но она не вызывается каждый раз, когда нужно нарисовать что-то новое. мой paint функция

    void CLabelItem::paint(QPainter *painter,
const QStyleOptionGraphicsItem* /*option*/, QWidget* /*widget = 0*/)
{

if ( GetValue() < 0 )
{
return;
}
painter->drawText(boundingRect(), m_value.toString());
}

Итак, мой вопрос — почему QGraphicsItem::paint можно не называть и как мне сделать так, чтобы его называли?

1

Решение

Вам нужно позвонить QGraphicsItem::update() от функции, которая изменяет m_value переменная для запуска перекраски.

2

Другие решения

В общем, с помощью Qt графические элементы рисуются, когда paintEvent называется, и тогда вы можете обрабатывать живопись внутри paint функция.

0

По вопросам рекламы [email protected]