QML 设置字体大小写
Posted
技术标签:
【中文标题】QML 设置字体大小写【英文标题】:QML set font capitalization 【发布时间】:2021-05-20 08:20:25 【问题描述】:我正在编写一个可重用的字体属性,如 here 和 here 所述。 这是我的财产
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
它给了我一个“属性已被赋值”错误。
我该怎么做?
【问题讨论】:
【参考方案1】:如果要更改大小写,则必须在 Component.onCompleted 中使用它:
Text
text: "button"
font: MyFont.button2
// font.capitalization: Font.AllUppercase
Component.onCompleted: font.capitalization = Font.AllUppercase
【讨论】:
我想过,但我觉得这是一种解决方法,而不是正确的方法。居然没有别的办法? @Moia 不,没有办法。实现你的逻辑:绑定不是顺序的,即“N”行上的属性没有在“N+1”行之前执行,可能也可能不会。 你是说我不能把它放在 Qt.font() 函数中,因为绑定应该在对象构建之后发生?以上是关于QML 设置字体大小写的主要内容,如果未能解决你的问题,请参考以下文章