Solved [QML] Property komponentu jako funkcja
-
Item { property function callback: function() {} Button { onClicked: function() { // do something callback(); } }
W powyższym przykładzie chciałem przekazać ideę. Czy da się w jakiś sposób przekazać taki callback z rodzica do komponentu dziecka?
Dzięki.
-
Nie rozumiem idei ;-)
Dziecko widzi wszystkie metody rodzica, więc nie trzeba callbacku - wystarczy normalnie odpalić metodę rodzica w onClicked. Funkcji nie trzeba deklarować jako
property
. -
Ok. Chyba nie do końca się jasnow wyraziłem.
Item ma być reużywalny, stąd idea callback'a, aby móc wstrzyknąć różne funkcje// plik MyItem.qml Item { property function onClickCallback: function() {} Button { onClicked: function() { // do something callback(); } } // plik korzystający z MyItem Item { MyItem { onClickCallback: function() { //do something } } }
-
To jest kompletnie niepotrzebne. Funkcje JS można nadpisywać. Czyli:
// plik MyItem.qml Item { function click() {} Button { onClicked: { // do something click(); } } // plik korzystający z MyItem Item { MyItem { function click() { //do something } } }
Powinno działać.
-
Tak, dzięki. Działa.