2010-09-14 4 views
4

У меня есть объект в python, который получен из QtGui.QGraphicsPixmapItem с несколькими базовыми атрибутами и методами. После вызова deepcopy на ссылку на этот объект, я получаю сообщение об ошибке underlying C/C++ object has been deleted, когда пытаюсь использовать копию. Я получил эту ошибку раньше, и это произошло, когда я не вызывал конструктор базового класса в __init__, поэтому я предполагаю, что эта ошибка связана с тем, что QtGui.QGraphicsPixmapItem не копируется.Глубокая копия полученного объекта python

Как мне это определить? Все, что я знаю, это то, что для этой цели существует метод __deepcopy__.

ответ

3

QGraphicsPixmapItem не подлежит копированию. Он наследует QGraphicsItem, который объявляется с использованием макроса Q_DISABLE_COPY, который является тем же механизмом, который используется для QObjects, чтобы отключить копирование. The documentation explains it a bit better.

Смежные вопросы