我有一个像这样的基类项目:
基 .qml:
Item {
Thing {
id: theThing;
onMySignal: { console.log("The signal"); }
}
}
我正在尝试制作一个衍生项目 - Derived.qml
。
如何覆盖onMySignal
的{{1}}处理程序?我试过这样的东西......
派生 .qml:
theThing
但我找不到任何要告诉我如何正确表达这种语法,或者是否/如何实际表达它!
答案 0 :(得分:6)
您可以将信号处理程序的代码定义为超类中的属性,并在派生项中覆盖它:
Item {
property var handlerCode: function () { console.log("In Superclass") };
Thing {
id: theThing;
onMySignal: handlerCode()
}
}
覆盖:
Base {
handlerCode: function () { console.log("In Derived Item!") };
}