我有一个包含一些可以拖动的 MouseArea 的画布。画布在这些项目之间绘制了一些无法表示为原生 QML 元素的装饰。
当一个项目改变大小或位置时,如何启动画布的重绘?我知道我需要调用 canvas.requestPaint(),但是在哪个事件上?到目前为止,我发现的唯一解决方案是在计时器内调用 requestPaint(),但由于性能原因,我想避免这种情况。
根据QML 文档,组件的每个属性QML
都有一个与属性值更改相关联的隐式信号:
属性更改信号的信号处理程序采用语法形式
on<Property>Changed
where<Property>
是属性的名称,第一个字母大写。例如,虽然 TextInput 类型文档没有记录 textChanged 信号,但通过 TextInput 具有 text 属性这一事实可以隐式使用此信号,因此可以编写一个 onTextChanged 信号处理程序,以便在此属性更改时调用