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

时间:2013-11-14 19:58:26

标签: qt qml qt-quick

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

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

1 个答案:

答案 0 :(得分:5)

根据QML documentationQML组件的每个属性都有一个与属性值变化相关的隐式信号:

  

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