Здравствуйте, дорогие форумчане!
Использую Qt 4.8.2
Подскажите, пожалуйста, про использование класса QPainter.
У меня есть класс
GraphItem, унаследованный от QGraphicsItem.
В его переопределенном виртуальном методе для рисования я рисую свою графику:
GraphItem::paint ( QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget )
{
//Рисую своим объектом.
pClock->draw(painter);
}
Причем эту
свою графику я выполняю с помощью своего класса, указатель на который -
pClockТо есть в свой объект я передаю указатель для рисования -
painter (это параметр из метода GraphItem::paint), а мой объект далее все рисует уже сам.
Но вот только я хочу, чтобы при первом рисовании (при первом вызове GraphItem::paint), сначала рисовалось все моим объектом. А при следующих вызовах GraphItem::paint все то же самое рисовалось уже без моего объекта. То есть чтобы мой объект сначала только один первый раз нарисовал, далее чтобы из
QPainter вся эта информация куда либо запомнилась, а затем воспроизводилась. Воспроизводилась сама, без моего объекта.
Чтобы код выглядел похоже на этот фрагмент:
GraphItem::paint ( QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget )
{
//Флаг о состоянии инициализации.
static bool IsInited = FALSE;
//Рисую своим объектом. Только первый раз.
if(!IsInited)
{
pClock->draw(painter); //Нарисовать своим.
IsInited = TRUE; //Уже нарисовал.
//Как то запомнить графическую информацию из готового (прорисованного QPainter).
...
}
//Иначе объект был уже нарисован. Воспроизвести сохраненное.
else
{
//Как то воспроизвести записанное изображение.
...
}
}
В общем задача в том, чтобы нарисованное изображение сохранить куда либо в QPainter, а затем воспроизвести. И чтобы это работало в методе
GraphItem::paint. Подскажите, пожалуйста, как это сделать?