Qt 设置字体大小写

Qt 设置字体大小写,qt,qml,Qt,Qml,我正在编写一个可重用字体属性,如下所述和所示。 这是我的财产 property font button2: Qt.font({ family: defaultFont.name, styleName: "Bold", pointSize: 16 }) 这里是我如何使用它的,它工作得很好 Text { text: "button" font: MyFont.button2 } 现在我

我正在编写一个可重用字体属性,如下所述和所示。 这是我的财产

property font button2: Qt.font({
    family: defaultFont.name,
    styleName: "Bold",
    pointSize: 16
})
这里是我如何使用它的,它工作得很好

    Text {
        text: "button"
        font: MyFont.button2
    }
现在我要加上资本,但是像这样把它加在财产上

property font button2: Qt.font({
    family: defaultFont.name,
    styleName: "Bold",
    capitalization: "AllUppercase",
    pointSize: 16
})
它根本没有效果。如果我将其添加到文本组件中

    Text {
        text: "button"
        font: MyFont.button2
        font.capitalization: Font.AllUppercase
    }
它给我一个“属性已被赋值”错误


我应该怎么做?

如果您想更改大写字母,则必须在Component中使用它。onCompleted:

Text {
    text: "button"
    font: MyFont.button2
    // font.capitalization: Font.AllUppercase
    Component.onCompleted: font.capitalization = Font.AllUppercase
}

我想了想,但我觉得这是一个解决办法,不是正确的方法。真的没有别的办法吗?@Moia不,没有办法。了解您的逻辑:绑定不是顺序的,也就是说,“N”行上的属性没有在“N+1”行之前执行,它可能会执行,也可能不会执行。所以您是说我不能将其放入Qt.font()函数中,因为绑定应该在对象构造之后执行?