4

ドラッグできるいくつかの MouseAreas を含むキャンバスがあります。キャンバスは、これらの項目の間にネイティブの QML 要素として表現できない装飾を描画します。

アイテムのサイズまたは位置が変更されたときに、キャンバスの再描画を開始するにはどうすればよいですか? canvas.requestPaint() を呼び出す必要があることはわかっていますが、どのイベントで? これまでに見つけた唯一の解決策は、タイマー内で requestPaint() を呼び出すことでしたが、パフォーマンス上の理由からそれを避けたいと考えています。

4

1 に答える 1

5

QML documentationによると、コンポーネントの各プロパティにはQML、プロパティの値の変更に関連付けられた暗黙的なシグナルがあります。

プロパティ変更シグナルのシグナル ハンドラは、プロパティの名前で、最初の文字が大文字になっている構文形式を取りon<Property>Changedます<Property>。たとえば、TextInput 型のドキュメントには textChanged シグナルが記載されていませんが、このシグナルは、TextInput にテキスト プロパティがあるという事実によって暗黙的に使用できるため、このプロパティが変更されるたびに呼び出される onTextChanged シグナル ハンドラを作成できます。

于 2013-11-14T20:31:03.760 に答える