-1

我编写了一个QQuickItem用于绘制曲线的 c++ 组件,但是为了更新曲线,我必须通过计时器调用更新方法。

我在做什么的例子:

Item {
    Curve {
        id: curve
        height: 100
        width: 600
    }

Timer {
    id: timer
    interval:20
    repeat: true
    running: true
    onTriggered: {
        curve.update()
    }
 }
}

有没有办法从 C++ 调用它?

4

1 回答 1

0

您寻求的功能是:

void QQuickWindow::update()

安排窗口渲染另一个帧。

调用 QQuickWindow::update() 与 QQuickItem::update() 的不同之处在于它总是触发重绘,无论底层场景图是否发生变化。

QQuickItem例如,您可以从任何 访问底层窗口,也可以直接someItem->window()->update()传递Windowor ApplicationWindow

您将必须实现一个基本的QObject派生访问器对象,以便可以从 QML 调用 C++ 函数,将 QML 对象作为参数(窗口或项)传递给它。然后在其中创建一个实例main.cpp,将其公开为上下文属性,然后从 QML 中您可以简单地onTriggered: Accessor.requestUpdate(someItem/someWindow)

于 2017-04-29T15:27:13.513 回答