Как мне управлять удалением объекта, который был пропущен через сигнальный слот? - PullRequest
3 голосов
/ 04 февраля 2011

Я только что добавил поддержку веб-камеры в свое приложение, используя библиотеку videoInput и OpenCV.

Видеопоток находится в QThread (производитель) и испускает сигнал, отправляющий QImage * для моего приложения для обновления графикипункт, который нуждается в этом.

Сторона управления памятью состоит в том, что я удаляю QImage * в потребительском слоте, как только слот закончил использовать его.Теперь проблема в том, что я хотел бы, чтобы несколько объектов принимали эти данные QImage *.

В этом случае мне теперь нужно отслеживать всех потребителей (с подсчетом ссылок) данных, а затем удалять QImage * (скорее всего, в потоке производителя), когда все они завершены?

1 Ответ

8 голосов
/ 04 февраля 2011

Использование умных указателей должно сделать большую часть работы за вас: QSharedPointer

...