QML:将插槽连接到多个控件

时间:2018-07-25 19:11:07

标签: qt qml qtquick2

我希望在Qt主应用中获得通知,以防QML中的任何控件(通过QQuickWidget加载)的值发生变化。有CheckBoxComboBoxSpinBoxTextEditor。 我目前的方法是为每个控件(分别为onCheckedChangedonCurrentIndexChangedonValueChangedonTextChanged声明一个插槽,然后从其中调用mainApp.notifyMe(),在那里{{ 1}}是在

的帮助下传播到QML的父Qt小部件的链接
mainApp

QQmlEngine* engine = new QQmlEngine(this); if (QQmlContext* cntx = engine->rootContext()) { cntx->setContextProperty("mainApp", this); } 是C ++端的插槽。

但是,这需要使用具有相同代码bcs的数十个函数,而我却拥有数十个控件。最好在QML中具有一个或四个带有notifyMe()的函数,这些函数可以连接到所有控件的值更改。

QML中是否有一种方法可以创建此类插槽并将其连接到多个对象属性更改?

1 个答案:

答案 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)) 并为其附加插槽。