QDeclarativeItem
から継承した2つのカスタムQMLコンポーネントがあります。私は別のタイプの要素上記のいずれかのタイプの要素を持っている私のアプリケーションでアンダーレイ要素の再描画を防ぐint QtQuick Qmlカスタムコントロール
setFlag(QGraphicsItem::ItemHasNoContents, false);
setCacheMode(QGraphicsItem::ItemCoordinateCache);
:私のコンポーネントのコンストラクタで
私は、このオプションを設定します。この要素はプロパティを共有しませんが、そのうちの1つが再描画されると、別のものも再描画されます。
私の要素の上に(Text
またはRectangle
のような)いくつかの標準要素を置き、そのプロパティを変更すると、要素が再描画されません。だから、私は私のコンポーネントにいくつかのフラグを設定することを忘れてしまったと思います。
別のアイテムが変更されているときに、あるアイテムの再描画を防止するにはどうすればよいですか?
私はQtの4.8と任意のラスタベースのレンダリングシステムで
私は知っていますが、私が正しいとすれば、キャッシュは不要な再描画を防ぐ必要があります。 これは、キャッシングをオンにしてから(上記のように)標準要素で作業を開始しました。しかし、私の自作コンポーネントでは、キャッシュは機能しません。私は、私の要素の再描画が他の要素の出現に影響しないことをフレームワークに通知する必要があると思います。 – Paboka
キャッシングは合成の必要性を妨げるものではなく、それも無料ではありません。 –