在QML中,我希望能夠定義一組用於簡單語義重用的字體屬性。例如,而不是:QML中的可重用字體屬性
Text {
text: "This is a header"
font { family:'Encode Sans'; weight:Font.Black; italic:false; pointSize:24 }
}
我希望能寫:
Text {
text: "This is a header"
font: headerFont
}
我怎樣才能使一個單一的font
值,我可以將這個樣子?
我知道我做的組件,如:
# Header.qml
Text {
font { family:'Encode Sans'; weight:Font.Black; italic:false; pointSize:24 }
}
# main.qml
Header { text:"This is a header" }
然而,這並不時,我想用相同的字體設置爲Label
或其他地方,一個font
是工作需要。
我也知道,我可以使用的答案this question到,例如:
// style.js
.pragma library
var header = {
family: 'Encode Sans',
weight: Font.Black, // is this legal?
italic: false,
size: 24
};
// main.qml
import "style.js" as Style
Text {
text: "This is a header"
font {
family: Style.header.family
weight: Style.header.weight
italic: Style.header.italic
pointSize: Style.header.size
}
}
雖然這確實單一來源的值,它是,如圖所示,痛苦冗長。
我想這...
Font {
id: header
family: 'Encode Sans'
weight: Font.Black
italic: false
pointSize: 24
}
Text {
text: "This is a header"
font: header
}
...但它的錯誤 「元素是不可創建」 關於Font {
線。
大多數不平凡的QML難題讓我問Qt的支持。 – AlexanderVX
http://stackoverflow.com/questions/36848185/is-there-any-way-to-set-a-property-attribute-for-some-all-sub-items/36848272#36848272 http:// stackoverflow .com/questions/36806326/how-to-create-a-custom-grouping-properties-and-apply-them-to-different-contro/36810566 – dtech
@ddriver謝謝。我在我的問題中提到了這個選項(它在中間),並且正在尋找更好的答案,它適用於多種不同的類型。 – Phrogz