【发布时间】:2018-07-13 20:15:38
【问题描述】:
我有一个 Canvas 对象,它的 onPaint 方法如下所示:
onPaint: {
var ctx = getContext("2d");
ctx.fillStyle = Qt.rgba(1, 1, 1, 1);
ctx.fillRect(0, 0, width, height);
}
只需用白色填充画布即可。
之后,当我按下某个按钮时,我想在这个 Canvas 上画一个点,我可以在 Button 对象的 onClick 方法中更改 Canvas 吗?对我来说,如果我想在 Canvas 上绘制一些东西,我需要调用 requestPaint(),但 requestPaint() 只会将所有 Canvas 填充为白色。所以,我看到了一种解决方案,我需要声明
property var point: [x, y] 并将 onPaint 方法更改为如下内容:
onPaint: {
var ctx = getContext("2d");
ctx.fillStyle = Qt.rgba(1, 1, 1, 1);
ctx.fillRect(0, 0, width, height);
//pseudocode
if point is not empty:
ctx.fillStyle = Qt.rgba(1, 0, 0, 1);
ctx.fillRect(point.x, point.y, 1, 1)
}
它会起作用吗?有没有更好的方法来做我描述的事情? 谢谢。
【问题讨论】: