【问题标题】:What is cause of PyQt4/Qt abort trap when calling CGPathAddArc?调用 CGPathAddArc 时 PyQt4/Qt 中止陷阱的原因是什么?
【发布时间】:2014-08-14 01:50:08
【问题描述】:

升级到 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 元素,但是我怎么找到哪一个呢?

【问题讨论】:

    标签: c++ qt pyqt pyqt4 osx-mavericks


    【解决方案1】:

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

    使用虚拟 x 和 y 参数声明 QGraphicsEllipseItem 解决了该问题。

    【讨论】:

      猜你喜欢
      • 2011-12-13
      • 2011-02-26
      • 2018-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多