주어진 텍스트 및 고정 너비의 글꼴 크기를 가져 오는 방법이 있습니까?동적 글꼴 크기로 너비 레이블 고정
내가 함께 노력했다 :
TextField{
autoFit: TextAutoFit.FitToBounds
}
그러나 텍스트는 항상 정렬을 왼쪽으로 나타납니다. 이 요구 사항은 고정 rect에서 가변 글꼴 크기 레이블 렌더링과 텍스트 정렬을 가운데 정렬하는 것입니다.
주어진 텍스트 및 고정 너비의 글꼴 크기를 가져 오는 방법이 있습니까?동적 글꼴 크기로 너비 레이블 고정
내가 함께 노력했다 :
TextField{
autoFit: TextAutoFit.FitToBounds
}
그러나 텍스트는 항상 정렬을 왼쪽으로 나타납니다. 이 요구 사항은 고정 rect에서 가변 글꼴 크기 레이블 렌더링과 텍스트 정렬을 가운데 정렬하는 것입니다.
방금 정렬 텍스트를 중심하려는 경우, 당신은 그렇게 textStyle.textAlign
속성을 사용해야 할 것 :
textStyle.textAlign: TextAlign.Center
을 고정하는 구형에 렌더링 가변 글꼴 크기 레이블 텍스트를 정렬 중심을하기 위해, 당신은 기본적으로 필요 위의 Label
textStyle.textAlign
속성을 사용하여 해당 사각형의 원하는 너비와 높이를 지정하고 각각 textStyle.fontSize
Label
속성을 통해 글꼴 크기를 선택하십시오. 텍스트 정렬은 (텍스트가 지정된 너비/높이에 적합하지 않을 수 있다면 물론, 그것은 끊어 질 것) 자동 Cascades
에 의해 수행됩니다
import bb.cascades 1.0
Page {
Container {
layout: DockLayout {}
horizontalAlignment: HorizontalAlignment.Fill
verticalAlignment: VerticalAlignment.Fill
Label {
horizontalAlignment: HorizontalAlignment.Center
verticalAlignment: VerticalAlignment.Center
maxWidth: 300
minWidth: maxWidth
maxHeight: 100
minHeight: maxHeight
multiline: true
text: "Some very very very very very long text here"
textStyle.textAlign: TextAlign.Center
textStyle.fontSize: FontSize.XLarge
}
}
}
내가 목표를 달성하기위한이 방법을 권하고 싶습니다 세트.
그러나 실제로 위젯에 사용되는 글꼴의 절대 값을 가져 오려면 textStyle.fontSize
속성을 사용하십시오 (TextStyle 공식 설명서).
현재 BB10 Cascades에는 글꼴 메트릭이 없으므로 글꼴이 레이블에 맞지 않으며 크기를 조정할 수 없는지 확인할 수 없습니다.
거친 크기 조정을 위해 layoutUpdateHandler와 일종의 해킹을 사용할 수 있지만 권장하지 않습니다. 텍스트가 자주 바뀌면 깜박 거림이 보일 것입니다. 단 한번만 설정하면 괜찮을 수 있습니다. "onCreationCompleted"에 설정된 텍스트를 변경하여 텍스트의 크기가 조절되는지 확인하십시오.
Container {
id: root
implicitLayoutAnimationsEnabled: false
background: Color.Cyan
property int width: 500
property string text: ""
property double textSize: 20
layout: DockLayout {
}
attachedObjects: [
LayoutUpdateHandler {
onLayoutFrameChanged: {
if (layoutFrame.width > root.width) {
root.textSize = root.textSize - 1
}
}
}
]
Label {
implicitLayoutAnimationsEnabled: false
maxWidth: root.width
text: root.text
textStyle {
fontSize: FontSize.PointValue
fontSizeValue: root.textSize
}
}
Label {
implicitLayoutAnimationsEnabled: false
text: root.text
opacity: 0
textStyle {
fontSize: FontSize.PointValue
fontSizeValue: root.textSize
}
}
onCreationCompleted: {
root.text = "Hello World AAAAAAAA"
}
}
답장을 보내 주셔서 감사합니다.하지만 라벨은 내용에 맞게 "매우 긴 텍스트"의 글꼴 크기를 줄여야합니다. 또한 "textStyle.fontSize"는 위젯을 만들 때 설정 한 글꼴 크기를 항상 돌려줍니다. – Shailesh
Ugg. 잘못 클릭하여 죄송합니다. 나는 downvote을 의미하지 않았다, Sunseeker. 내가 그것을 보았을 때 되돌리기에는 너무 늦었다. –