В чем причина прерывания прерывания PyQt4 / Qt при вызове CGPathAddArc?

После обновления до Mavericks с PyQt 4.10.4, Qt 4.8.5, python 2.7.5 я пытался пересобрать приложение PyQt и обнаружил следующую ловушку прерывания:

Assertion failed: (CGFloatIsValid(x) && CGFloatIsValid(y)), function void CGPathAddArc(CGMutablePathRef, const CGAffineTransform *, CGFloat, CGFloat, CGFloat, CGFloat, CGFloat, bool), file Paths/CGPath.cc, line 279.
Abort trap: 6

Это вопрос отражает то, что CGPathAddArc на Mavericks отклоняет значения NaN из Qt (которые на Snow Leopard использовались, чтобы терпеть / предупреждать о них). Eсть пластырь это выглядит хорошо, но для его применения требуется пересборка Qt и PyQt, и я не смог заставить его работать на меня.

faultHandler не дает никаких подробностей, и runnake не выдает никаких результатов, поскольку приложение завершается ненормально.

Это, очевидно, элемент пользовательского интерфейса, но как мне найти какой?

1

Решение

Culprit был QGraphicsEllipseItem (), объявленным без параметров. Документация по Qt 4.8 предполагает, что никакие параметры не являются допустимым конструктором, но, очевидно, в Mavericks это не так.

Объявление QGraphicsEllipseItem с фиктивными параметрами x и y решило проблему.

3

Другие решения


По вопросам рекламы [email protected]