Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: Swa от Март 22, 2011, 17:08



Название: Вопрос про QGraphicsScene::changed
Отправлено: Swa от Март 22, 2011, 17:08
Всем привет.
Есть сигнал
Код:
void QGraphicsScene::changed ( const QList<QRectF> & region )
, в справке:
Цитировать
his signal is emitted by QGraphicsScene ... if the scene content changes
.
Присоединил этот сигнал к слоту:
Код:
void MainWindow::Scenechanged (const QList<QRectF> &) {
qDebug() << QString("%1 - Scene changed").arg(QDateTime::currentDateTime().toString("hh:mm:ss.zzz"));
}
В итоге этот слот вызывается очень часто, до 100 раз в секунду. А мне нужно, чтобы вызывалось только когда изменилась сцена. Возможно ли это?


Название: Re: Вопрос про QGraphicsScene::changed
Отправлено: GreatSnake от Март 22, 2011, 17:35
Цитировать
А мне нужно, чтобы вызывалось только когда изменилась сцена.
Что подразумевается под изменением сцены?


Название: Re: Вопрос про QGraphicsScene::changed
Отправлено: Swa от Март 23, 2011, 09:20
Что подразумевается под изменением сцены?

Изменение набора итемов сцены, положения итемов, изменение внешнего вида итемов. Просто я хочу кешировать изображение сцены когда она изменилась, а это, как я понимаю, ресурсоёмкая операция.


Название: Re: Вопрос про QGraphicsScene::changed
Отправлено: GreatSnake от Март 23, 2011, 10:46
Ну дык повесь таймер.


Название: Re: Вопрос про QGraphicsScene::changed
Отправлено: Swa от Март 23, 2011, 12:29
Ну похоже это единственный вариант, спасибо. Странно, что нет такого сигнала об изменении внешнего вида сцены


Название: Re: Вопрос про QGraphicsScene::changed
Отправлено: GreatSnake от Март 23, 2011, 12:46
Цитировать
Странно, что нет такого сигнала об изменении внешнего вида сцены
Внешним видом сцены заведует QGraphicsView. Может и копать нужно относительно него, а не QGraphicsScene?


Название: Re: Вопрос про QGraphicsScene::changed
Отправлено: Swa от Март 23, 2011, 14:48
Неа, представление только выводит на экран и передаёт сцене события.


Название: Re: Вопрос про QGraphicsScene::changed
Отправлено: GreatSnake от Март 23, 2011, 15:00
Цитировать
Просто я хочу кешировать изображение сцены
Тогда определись, что ты хочешь кешировать.