[МИНИМИЗИРОВАННЫЙ код предоставлен для примера и вопрос ОТРЕДАКТИРОВАН]
Я подписался здесь, чтобы задать, казалось бы, простой вопрос (см. заголовок и более подробное описание ниже), но он возник в результате часов отслеживания ошибок вплоть до обычно самого безвредного метода и нескольких минут трепета, задающихся вопросом, что может быть технически происходит.
Контекст
Две пары QGraphicsView+Scene в разных окнах и простая иерархия QGraphicsItem.
Проблема
Приложение зависает на любом setRotation, указанном в примере.
Минимальный набор файлов помещается в ветку "debug" Репозитории Git, чтобы вы могли загрузить моментальный снимок и столкнуться с проблемой. [Серьезные усилия по сокращению :-p "173 файла изменены, 356 вставок(+), 2763256 удалений(-)"]
Примечания
- Если вы закомментируете обе строки setRotation (66 и 95, помеченные «#FIXME») в модуле GUI.graphics.contact, вы получите работающую программу, в которой вы можете без проблем перемещаться по сцене и панорамировать ее.
- Зависание также исчезает, если вы закомментируете создание нового окна (строка 17 в GUI.main).
- Нет зависания, если элементы находятся вне поля зрения.
Пытался решить
- Перемещение setRotation за пределы метода рисования и настройка из parentItem, но все равно зависает, поэтому не проблема вызова из метода рисования.
- QMutexing setRotations ничего не изменил (в отчаянии вы пытаетесь делать забавные вещи!)
Вопрос
Конечно, вы можете просто точно знать, что я должен делать с моей программой, но если нет, я хотел бы ответить на простой вопрос: при условии, что я набрал 'x' float и буду настолько изобретателен, насколько это возможно, что может сделать .setRotation (x) вызов, чтобы заморозить программу?
Спасибо тебе.