6
'font.family'또는 'anchors.fill'과 같이 중첩 된 속성을 사용하려고 시도하지만 '존재하지 않는 속성에 할당 할 수 없습니다'라는 내용을 출력하므로 정상적인 방법으로 초기화 할 수 없습니다. 대신 Component.onCompleted 메서드를 사용해야합니다. 뭐가 문제 야?그룹화 된/중첩 된 속성을 만드는 방법은 무엇입니까?
MyButtonStyling.qml :
import QtQml 2.1
QtObject
{
property QtObject background: QtObject
{
property color pressed: "#CCCCCC"
property color enabled: "#666666"
property color disabled: "#555555"
}
}
main.qml :
import QtQuick 2.0
Item
{
width: 400
height: 300
MyButton
{
text: "TEST"
styling: MyButtonStyling
{
//background.enabled: "#1B2E0A" //Cannot assign to non-existent property "enabled"
Component.onCompleted:
{
background.enabled = "#1B2E0A" //Works
}
}
}
}
MyButton.qml :
import QtQuick 2.0
import QtQuick.Controls 1.0
import QtQuick.Controls.Styles 1.0
Button
{
property QtObject styling: MyButtonStyling {}
implicitWidth: 80
implicitHeight: 80
style: ButtonStyle
{
background: Item
{
Rectangle
{
anchors.fill: parent
color: control.pressed ? styling.background.pressed : control.enabled ? styling.background.enabled : styling.background.disabled
}
}
}
}
당신이 위의 코드를 달성하고자하는지 정확히 규명 할 수 있습니까? 이것을 달성하는 더 좋은 방법이있을 수 있지만, 나는 당신이 무엇을하려고하는지 완전히 명확하지 않습니다. – MrEricSir