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

QML Calendar : Programmatically call onClicked handler

我的 QML 应用程序正在显示日历元素。

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

我有这样的东西:

Calendar  {
    id: calCalendar

    onClicked: {
        // update other QML element
    }
}

当用户在日历上单击鼠标时工作正常:其他元素(图像)已正确更新。

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

我不知道该怎么做。

如果您想在 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。您可以像您说的那样以编程方式触发信号,只需像函数一样调用它。您需要知道参数的有效重载(如果有的话)。