Tôi đang cố gắng lồng ghép các thuộc tính như 'font.family' hoặc 'anchors.fill', nhưng tôi không thể khởi tạo chúng theo cách thông thường vì nó in 'Không thể gán cho thuộc tính không tồn tại'. Thay vào đó, tôi buộc phải sử dụng phương thức Component.onCompleted. Chuyện gì vậy?Làm cách nào để tạo thuộc tính được nhóm/lồng nhau?
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
}
}
}
}
Bạn có thể làm rõ chính xác những gì bạn đang có ý định thực hiện với các mã trên? Có thể có một cách tốt hơn để đạt được điều này, nhưng tôi không hoàn toàn rõ ràng về những gì bạn đang cố gắng làm. – MrEricSir