QT:QPainter.drawText()进入QPixmap在OSX Lion下崩溃,而不是Leopard

时间:2012-05-06 06:22:25

标签: qt

解决!

我为Windows编译,并得到了我的提示:Windows版本甚至在main之前崩溃了 - 所以它必须是基本的分配问题。它就是。我做了一个大的静态分配,最近使它更大(程序需要的东西,不是可选的或临时的);将数组[size]更改为array = calloc(等等)和bingo,Windows版本运行了,OSX / Lion的内部崩溃消失了,一切都运行良好。

所以,经验教训:大型静态分配,没有好处 - Windows或OSX都无法容纳它们。


我得到了一个油漆事件。我有一个独立的QPixmap,我将在QWidget框架上绘图。在paint事件调用中,我为QPixmap创建了一个画家,它位于类定义中。我设定了颜色;刷子,钢笔。我填写,我画线。 rects。梯度。文本。椭圆。在Snow Leopard和Leopard下一切正常。在Lion下,在同一个QPixmap上的10.7.anything,任何 drawText()调用在OSX中失败了许多调用级别,在com.apple.ColorSync中失败了五个级别。无论我使用什么字体或大小。 drawText()和drawStaticText()都以同样的方式失败。

在尝试实际绘制QPixmap之前发生了失败 - 它是在渲染drawText()期间爆炸的。我所做的就是填充黑色(作品),填充渐变(作品),绘制一些填充的作品(作品)并绘制网格(作品),然后我去绘制这个文本。哪个不起作用,但是用EXC_BAD_ACCESS SIGSEGV吹出主线程(0)(在paint事件期间进行绘图)。

据我所知,Qt没有色彩管理。 OSX无法关闭colorsync到显示器。

目前,我已经特别设置了操作系统级别,如果在Lion下运行,根本不会绘制文本(在测试阶段),但这是一个可怕的解决方法。

任何人都有任何想法为什么Apple的10.7 colorsync会在drawText()的结上形成一个完美的香草QPixmap,其中包含有效的大小,文本,矩形和内部绘图任务?

0 个答案:

没有答案