我希望在Qt主应用中获得通知,以防QML中的任何控件(通过QQuickWidget
加载)的值发生变化。有CheckBox
,ComboBox
,SpinBox
和TextEditor
。
我目前的方法是为每个控件(分别为onCheckedChanged
,onCurrentIndexChanged
,onValueChanged
和onTextChanged
声明一个插槽,然后从其中调用mainApp.notifyMe()
,在那里{{ 1}}是在
mainApp
和QQmlEngine* engine = new QQmlEngine(this);
if (QQmlContext* cntx = engine->rootContext()) {
cntx->setContextProperty("mainApp", this);
}
是C ++端的插槽。
但是,这需要使用具有相同代码bcs的数十个函数,而我却拥有数十个控件。最好在QML中具有一个或四个带有notifyMe()的函数,这些函数可以连接到所有控件的值更改。
QML中是否有一种方法可以创建此类插槽并将其连接到多个对象属性更改?
答案 0 :(得分:0)
我在根项目中最后得到了以下内容:
notify
诀窍在于创建自定义信号Map <- get_map(location = 'Santiago, Chile', zoom = 6, maptype = "terrain")
Map <- ggmap(Map)
Points <- data.frame(lon=c(-71.82718,-71.31263),lat=c(-34.36935,-34.29322))
Map_Points <- Map + geom_point(data = Points,aes(x=lon,y=lat,size=6))
并为其附加插槽。