当项目的位置/大小在QML中更改时,项目是否会发出信号?

gre*_*fab 3 qt qml qt-quick

我有一个画布,其中包含一些可以拖动的MouseAreas.画布在这些项目之间绘制一些装饰,这些装饰不能表示为本机QML元素.

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

koo*_*jah 5

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

属性更改信号的信号处理程序采用语法形式on<Property>Changed,其中<Property>是属性的名称,首字母大写.例如,虽然TextInput类型文档没有记录textChanged信号,但是这个信号可以通过TextInput具有text属性隐式获得,因此只要此属性发生更改,就可以编写onTextChanged信号处理程序.