2015-08-06 2 views
1

[МИНИМАЛЬНЫЙ код, предоставленный, например, и вопрос EDITED]Любая причина, по которой QGraphicsItem.setRotation может когда-либо ошибиться?

Я подписался здесь, чтобы спросить, что похоже на простой вопрос (см. Название и более подробное описание ниже), но происходит из часов отслеживания ошибок вплоть до обычно самый безобидный метод и несколько минут страха, интересующихся, что может произойти технически.

Контекст

Две пары QGraphicsView + Сцена в разных окнах и простая иерархия QGraphicsItem.

Проблема

Применение замерзает на любом setRotation приведены в примере.

Минимальный набор файлов переносится на ветку «отладки» Git repos, поэтому вы можете загрузить снимок и испытать проблему. [Serious Downsizing усилия, -Р "173 файлы, измененные, 356 вставки (+), 2763256 делеции (-)"]

Замечания

  • Если закомментировать обе setRotation линии (66 и 95, отмеченный знаком «#FIXME») в модуле GUI.graphics.contact, вы получаете запущенную программу, в которой вы можете вставлять/вставлять и панорамировать сцену без проблем.
  • Замораживание также исчезает, если вы закомментируете создание нового окна (строка 17 в GUI.main).
  • Не замерзайте, если предметы находятся вне поля зрения.

Пробовал решения

  • Перемещение setRotation вне метода рисования и настройки от parentItem, но по-прежнему замерзает, поэтому не проблема вызова от метода окраски.
  • QMutexing в setRotations ничего не изменилось (в отчаянии вы пытаетесь смешные вещи!)

Вопрос

Конечно, вы можете просто точно знать, что я должен делать с моей программой, но если не хотел бы ответить на простой вопрос: при условии, что я набрал 'x' float и стал как можно более креативным, что могло бы сделать вызов .setRotation (x), чтобы заморозить программу?

Спасибо.

+0

Добро пожаловать в SO. Обратите внимание, что мало кто, вероятно, захочет загрузить и травить весь ваш проект, чтобы помочь вам.Я предлагаю вам прочитать [Как задать хороший вопрос] (http://stackoverflow.com/help/how-to-ask), который рекомендует вам ** Включить достаточно кода, чтобы другие могли воспроизвести проблему ** и [Как для создания минимального, полного и проверяемого примера] (http://stackoverflow.com/help/mcve). Затем отредактируйте свой вопрос соответствующим образом. – TheDarkKnight

+0

Мне потребовалось столько времени, чтобы обвинить самые подозрительные методы всего, что я не мог чувствовать в это время. Я скорее надеялся, что получу ответ на «простой» вопрос, предоставив код только хардкорным тестерам. Но сегодня я набрался храбрости, и вот он. Вы можете загрузить новый снимок, который на этот раз всего несколько. Благодарю. – Michael

ответ

0

Решенный!

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

Ответ можно найти here.

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