qml组件与信号连接

时间:2017-12-04 10:51:01

标签: c++ qml

我有一个在qml中声明的组件/委托,我想将其动作连接到另一个qml或C ++类中的信号。因此,Component看起来像这样:

yield

我可以为组件创建连接(对于每个按钮都是如此),如下面的Qt表示的那样?     OrderBy

我的模型是在qml文件中表示的ListModel。

修改

如果这不是正确的方法,有人可能会建议我这样做吗?

2 个答案:

答案 0 :(得分:0)

您可以使用Connections - 对象。

您的表达将被翻译为:

Connections {
    target: loginForm
    onLoginChanged: whatIsThis.onIsEnabledChanged()
}

或者您可以使用JS连接语法: http://doc.qt.io/qt-5/qtqml-syntax-signals.html#connecting-signals-to-methods-and-signals

您的表达式将转换为:

loginForm.loginChanged.connect(this.onIsEnabledChanged)

答案 1 :(得分:0)

我正在发布我如何做我想做的事,就好像其他人需要这样。 我在模型中添加了一个函数并使用了set属性。

function action()
{
    for(var i= 0; i<count; ++i)
    {
        if(backend.disable())
        {
            setProperty(i, "enable", false)
            setProperty(i, "opac", 0.3)
        }
        else
        {
            setProperty(i, "enable", true)
            setProperty(i, "opac", 1)
        }
    }
}

在组件中(在Item父项内),我添加了:

            LoginForm{
            id: loginForm
            onLoginIdentityChanged: {
                mymodel.action()
            }