4

我有一个包含一些可以拖动的 MouseArea 的画布。画布在这些项目之间绘制了一些无法表示为原生 QML 元素的装饰。

当一个项目改变大小或位置时,如何启动画布的重绘?我知道我需要调用 canvas.requestPaint(),但是在哪个事件上?到目前为止,我发现的唯一解决方案是在计时器内调用 requestPaint(),但由于性能原因,我想避免这种情况。

4

1 回答 1

5

根据QML 文档,组件的每个属性QML都有一个与属性值更改相关联的隐式信号:

属性更改信号的信号处理程序采用语法形式on<Property>Changedwhere<Property>是属性的名称,第一个字母大写。例如,虽然 TextInput 类型文档没有记录 textChanged 信号,但通过 TextInput 具有 text 属性这一事实可以隐式使用此信号,因此可以编写一个 onTextChanged 信号处理程序,以便在此属性更改时调用

于 2013-11-14T20:31:03.760 回答