Gre*_*ade 7 inheritance qt handler qml qt-quick
我有一个基类项目,如下所示:
基础 .qml:
Item {
Thing {
id: theThing;
onMySignal: { console.log("The signal"); }
}
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试制作一个衍生项目 - Derived.qml
.
我怎样才能覆盖onMySignal
处理程序theThing
?我试过这样的东西......
派生的 .qml:
Base {
theThing.onMySignal: { console.log("Do different things with theThing in Derived") }
}
Run Code Online (Sandbox Code Playgroud)
但我找不到任何告诉我如何正确地表达这种语法,或者是否/如何真正去做它!
您可以将信号处理程序的代码定义为超类中的属性,并在派生项中覆盖它:
Item {
property var handlerCode: function () { console.log("In Superclass") };
Thing {
id: theThing;
onMySignal: handlerCode()
}
}
Run Code Online (Sandbox Code Playgroud)
覆盖:
Base {
handlerCode: function () { console.log("In Derived Item!") };
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
958 次 |
最近记录: |