Qt4 QML是否支持状态继承&;最重要的
我有一个Qt4 QML是否支持状态继承&;最重要的,qt4,qml,Qt4,Qml,我有一个CoolButton,它有一个按下的状态: // CoolButton.qml: BorderImage { ... states: State { name: "pressed" when: mouseArea.pressed == true PropertyChanges { target: shade; opacity: 0.5 } } } 而菜单按钮扩展了CoolButton: // MenuButton.
CoolButton
,它有一个按下的状态:
// CoolButton.qml:
BorderImage {
...
states: State {
name: "pressed"
when: mouseArea.pressed == true
PropertyChanges { target: shade; opacity: 0.5 }
}
}
而菜单按钮
扩展了CoolButton
:
// MenuButton.qml:
CoolButton {
...
states: State {
name: "pressed"
PropertyChanges { ... }
}
}
但是,在菜单按钮
中定义的按下
状态似乎根本不起作用。它是否被冷却按钮
中定义的按下状态隐藏?我怎样才能覆盖它
应该是这样的吗
// MenuButton.qml:
CoolButton {
...
states: State {
name: "pressed"
extend: "CoolButton.pressed"
PropertyChanges { ... }
}
}
我是QML新手,但据我所知,您不能扩展或覆盖已定义的组件。
相反,您可以封装它们,如下所示:
// CoolButton.qml:
BorderImage {
...
states: State {
name: "pressed"
when: mouseArea.pressed == true
PropertyChanges { target: shade; opacity: 0.5 }
}
}
// MenuButton.qml:
CoolButton {
property alias cb: encapsulatedCB
CoolButton {id: encapsulatedCB; }
...
states: State {
name: "pressed"
PropertyChanges { ... }
}
}
封装可以如下所示:
// CoolButton.qml:
BorderImage {
...
states: State {
name: "pressed"
when: mouseArea.pressed == true
PropertyChanges { target: shade; opacity: 0.5 }
}
}
// MenuButton.qml:
CoolButton {
property alias cb: encapsulatedCB
CoolButton {id: encapsulatedCB; }
...
states: State {
name: "pressed"
PropertyChanges { ... }
}
}