如何覆盖超类组件的信号处理程序
How to override signal handler of superclass component
我有一个基本的 class 项目是这样的:
基础.qml:
Item {
Thing {
id: theThing;
onMySignal: { console.log("The signal"); }
}
}
我正在尝试制作一个派生项目 - Derived.qml
。
如何覆盖 theThing
的 onMySignal
处理程序?我试过这样的东西...
派生.qml:
Base {
theThing.onMySignal: { console.log("Do different things with theThing in Derived") }
}
但我找不到任何东西告诉我如何正确地表达这个语法,或者 whether/how 实际去做!
您可以将信号处理程序的代码定义为超类中的 属性 并在派生项中覆盖它:
Item {
property var handlerCode: function () { console.log("In Superclass") };
Thing {
id: theThing;
onMySignal: handlerCode()
}
}
覆盖:
Base {
handlerCode: function () { console.log("In Derived Item!") };
}
我有一个基本的 class 项目是这样的:
基础.qml:
Item {
Thing {
id: theThing;
onMySignal: { console.log("The signal"); }
}
}
我正在尝试制作一个派生项目 - Derived.qml
。
如何覆盖 theThing
的 onMySignal
处理程序?我试过这样的东西...
派生.qml:
Base {
theThing.onMySignal: { console.log("Do different things with theThing in Derived") }
}
但我找不到任何东西告诉我如何正确地表达这个语法,或者 whether/how 实际去做!
您可以将信号处理程序的代码定义为超类中的 属性 并在派生项中覆盖它:
Item {
property var handlerCode: function () { console.log("In Superclass") };
Thing {
id: theThing;
onMySignal: handlerCode()
}
}
覆盖:
Base {
handlerCode: function () { console.log("In Derived Item!") };
}