2016-10-13 8 views
0

文書内で高低の検索を行っていますが、これについては何も見つかりませんでした。とにかく、私が作成したQML要素は、その子のうちの1人が変更によって再描画する必要がある場合に通知を受け取ることができますか?アイテムは、親が接続/聞くことができる信号またはイベントを送信しますか?好ましくは、アイテムが「ダーティ」とマークされ、再度レンダリングされるべきときに放出されるが、onPropertyChangeのような信号もまた機能する。QQuickItemの更新が必要になったときに通知を受け取ります

MyQmlItem { 
    Rectangle { 
      width: 50; height: 60 
      color: "blue" 
      Text { 
       text: "hello world" 
      } 
    } 
} 

いくつかのコードは、例えば、私はMyQmlItemは、この変更について通知することを希望四角形の色を変更した場合。

+0

あなたは*なぜ*あなたがそのようなことを必要とする程度手の込んだことはできますか? – peppe

+0

私はこれらのアイテムをQOpenGLFramebufferObjectにレンダリングしています。このQOpenGLFramebufferObjectはイメージとして取得し、オフスクリーンデバイスに書き込みます。何も更新されない場合、この書き込みを避けたい – Johan

+0

FBOが再描画を必要とするかどうかにかかわらず、書き込みは他のQtレンダリングフレームごとに行われます – Johan

答えて

0

FWIIW私は上記の許容可能な解決策を見つけることができました。 MyQmlItemクラスにブール値のプロパティ "isDirty"を追加しました。これはtrueに設定されているときにシグナルを出します。そして、それぞれの子は、上記のQMLは完璧な、しかし十分ではありません

MyQmlItem { 
    id: "topItem" 
    Rectangle { 
     width: 50; height: 60 
     color: "blue" 
     Text { 
      text: "hello world" 
      onTextChange: { 
       topItem.isDirty = true; 
      } 
     } 
} 

になり、このことが再描画必要な変更を行った場合に設定する必要があります

関連する問題