升级到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
这是issue反映了Mavericks上的CGPathAddArc拒绝来自Qt的NaN值(在Snow Leopard上它曾经容忍/警告过)。有一个看起来不错的patch,但应用它需要重建Qt和PyQt,而我无法让它为我工作。
faultHandler没有提供任何详细信息,并且由于应用程序异常终止,runsnake不会产生任何输出。
这显然是一个UI元素,但我如何找到哪一个?
答案 0 :(得分:3)
Culprit是一个没有参数声明的QGraphicsEllipseItem()。 Qt 4.8 documentation表明没有params是一个有效的构造函数,但显然在Mavericks中并非如此。
使用虚拟x和y参数声明QGraphicsEllipseItem解决了这个问题。