0

解決しました!

私はWindows用にクロスコンパイルし、ヒントを得ました。メインの前でもWindowsバージョンがクラッシュしたため、基本的な割り当ての問題である必要がありました。そしてそうだった。私は大きな静的割り当てを行い、最近それをさらに大きくしました(プログラムが必要とするものであり、オプションまたは一時的ではありません)。array[size]をarray=calloc(etc、etc)とbingoに変更し、Windowsバージョンが実行され、OSX / Lionの腸の奥深くでのクラッシュがなくなり、すべてが再び正常に実行されました。

それで、学んだ教訓:大きな静的割り当て、良くない-WindowsもOSXもそれらに特に対応することができません。


ペイントイベントがあります。QWidgetフレームに描画するスタンドアロンのQPixmapがあります。paintイベント呼び出し内で、クラス定義に存在するQPixmapのペインターを作成します。色を設定します。ブラシ、ペン。塗りつぶし、線を引きます。rects。グラデーション。文章。省略記号。SnowLeopardとLeopardではすべて正常に機能します。Lion、10.7.anythingでは、この同じQPixmapでdrawText()呼び出しは、OSX内の多くの呼び出しレベル、およびcom.apple.ColorSyncの5つのレベルで失敗します。使用するフォントやサイズは関係ありません。drawText()とdrawStaticText()はどちらも同じように失敗します。

失敗は、実際にQPixmapを描画しようとする前に発生します。これは、drawText()のレンダリング中に発生します。その時点までに行ったのは、黒で塗りつぶす(作品)、グラデーションで塗りつぶす(作品)、塗りつぶされた長方形を描く(作品)、グリッドを描く(作品)、そしてこのテキストを描くことです。これは機能しませんが、EXC_BAD_ACCESS SIGSEGVを使用してメインスレッド(0)(ペイントイベント中に描画を実行している)を吹き飛ばします。

私が知る限り、Qtにはカラーマネジメントがありません。OSXには、ディスプレイへのcolorsyncをオフにする方法がありません。

今のところ、私はOSレベルを特別にケースに入れており、Lionで実行している場合は(ベータ版では)テキストを描画しませんが、これは恐ろしい回避策です。

Appleの10.7colorsyncが、drawText()の上の結び目で、有効なサイズ、テキスト、長方形、および範囲内の描画タスクを備えた完全にバニラなQPixmapにニッカーを取得する理由を誰かが知っていますか?

4

0 に答える 0