2016-08-08 21 views
3

QtQuickControls 2をQQuickItem派生クラスとともにアプリケーションで使用します。私はAA_EnableHighDpiScaling属性を設定し、すべてのQQuickControls 2コンポーネントがスマートフォンで正しく表示されますが、私のカスタムクラスのオブジェクトは間違ってスケールされます。ここでアプリがHighDpiが最小ズーム(それが仕事に意味される道)でスケーリングすることなく、次のとおりです。QQuickItem派生クラスの高DPIスケーリング

Correct display of QQuickItem

そしてここでは、最小ズームとスケーリングを有するものである:

Incorrect display of QQuickItem

それは、 2番目のスクリーンではオブジェクトのスケールが大きすぎ、QPixmapまたはQImageで描いたすべてのテクスチャの正方形のピクセルを見ることができます。しかし、外部メモリやQSGGeometryNodeのようなノードからロードした画像は正しく見えます。特定のQQuickItemのスケーリングをオフにすることはできますか?いいえの場合、正しくレンダリングするにはどうすればよいですか?

また、シーングラフノードツリーのQSGOpacityNodesが多いQQuickItemで不透明度を設定しようとすると、セグメント化エラーが発生します。何が原因でしょうか?

答えて

1

QSGTextureのサイズをQQuickWindow :: effectiveDevicePixelRatio()で除算し、この比率でテクスチャが作成されたイメージのサイズを掛けてこの問題を解決しました。 QImageでテキストを描画する場合は、フォントのサイズにこの比率を掛ける必要があります。同じことを幾何学的形状とQPixmap :: scaled()で行うべきです。

関連する問題