在使用PyQt 4.10.4,Qt 4.8.5,python 2.7.5升级到Mavericks之后,我试图重建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

这是issue反射(reflect)了Mavericks上的CGPathAddArc拒绝了Qt的NaN值(在Snow Leopard上它曾经容忍/警告)。有一个patch看起来不错,但是应用它需要重建Qt和PyQt,但是我无法让它为我工作。

由于应用程序异常终止,faultHandler不提供任何详细信息,并且runnake不产生任何输出。

显然,这是一个UI元素,但是我怎么找到哪个?

最佳答案

罪魁祸首是没有参数声明的QGraphicsEllipseItem()。 Qt 4.8 documentation表示没有params是有效的构造函数,但显然在Mavericks中并非如此。

声明带有虚拟x和y参数的QGraphicsEllipseItem可以解决此问题。

关于c++ - 调用CGPathAddArc时PyQt4/Qt中止陷阱的原因是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24375804/

10-12 23:13