我的QML应用程序正在显示一个Calendar元素。
当所选日期更改(单击)时,我需要更新其他元素(图像)。
我有这样的东西:
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
。正如您所说,您可以通过编程方式触发信号,只需像函数一样调用它。您需要知道参数的有效重载(如果有的话)。