QML日历:以编程方式调用onClicked处理程序

时间:2015-03-23 09:49:57

标签: qt qml qt5

我的QML应用程序正在显示一个Calendar元素。

当更改(单击)所选日期时,我需要更新其他元素(图像)。

我有这样的事情:

Calendar  {
    id: calCalendar

    onClicked: {
        // update other QML element
    }
}

当用户在日历上单击鼠标时,它可以正常工作:另一个元素(图像)已正确更新。

我的问题是初始化:当我的应用程序启动时,日历默认显示当前日期,并且我想以编程方式调用onClicked处理程序,以确保图像是最新的。

我不知道该怎么做。

1 个答案:

答案 0 :(得分:2)

如果您想在QML组件初始化时执行某些操作,可以使用Component.onCompleted :插槽。

Calendar  {
    id: calCalendar

    onClicked: {
        // update other QML element
    }
    Component.onCompleted: {
         // Do stuff for initialization.
         // you could do this here : calCalendar.Clicked()
         // if you want to use the same code for initialization and for user input handling later on.
    }
}

重点如下:onXXX : {声明了一个处理单XXX的插槽。信号为Clicked。你可以像你说的那样以编程方式触发信号,只需像函数一样调用它。您需要知道参数的有效重载(如果有的话)。