QML Canvas Qt6 - 无法分配给不存在的属性“onPaint”

问题描述 投票:0回答:1

我正在 Qt6 中开发一个项目,使用 Qt Design Studio

我目前面临与

QML
中的 Canvas 元素相关的问题。具体来说,我尝试使用
onPaint
信号处理程序,但遇到以下错误:

无法分配给不存在的属性“onPaint”

我已经确保同时导入

QtQuick 2.15
QtQuick.Controls 2.15
。 以下是相关代码片段:

import QtQuick 2.15
import QtQuick.Controls 2.15

...

Canvas {
    id: canvas
    anchors.fill: parent

    onPaint: {
        // Some code...
    }
}

任何人都可以帮助我理解为什么会出现此错误以及如何解决它?

附加信息:

  • Qt版本:6.4.0
  • Qt 设计工作室版本:3.9.0
qt qml
1个回答
0
投票

Qt6.x文档https://doc.qt.io/qt-6/qml-qtquick-canvas.html实际上有一个错误。它不应在导入行中包含版本号:

import QtQuick
Canvas {
    id: mycanvas
    width: 100
    height: 200
    onPaint: {
        var ctx = getContext("2d");
        ctx.fillStyle = Qt.rgba(1, 0, 0, 1);
        ctx.fillRect(0, 0, width, height);
    }
}

您可以在线尝试!

© www.soinside.com 2019 - 2024. All rights reserved.