2011-02-08 5 views
2

크기가 고정되어 있으며 텍스트 레이블이있는 창이 있습니다. 비록 동일한 글꼴을 사용하지만 글꼴은 글꼴, 글꼴 크기가 응용 프로그램에서 상수 임에도 불구하고 레이블이 끝나는 위치에 의존 할 수없는 지점까지 Windows, Mac 및 Linux에서 다르게 보입니다.QT : 글꼴 및 글꼴 너비

그 해결책이 있습니까? 누군가 TTF 글꼴을 포함하고 사용하는 것에 대해 언급했지만 정말 필요합니까?

+0

텍스트 라벨의 끝 부분에 의존하는 작업을 수행하려고합니까? –

+1

고정 크기의 로그인 화면이 있습니다. 내 레이블은 화면에서 벗어날 수는 없지만 제어 할 수는 없다. 특정 플랫폼에서 레이블이 특정 폰트에 얼마나 많이 걸릴지 측정하는 지능적인 방법이있어이를 수용하기 위해 창을 동적으로 수정할 수 있습니까? – JasonGenX

답변

3

모든 플랫폼에서 사용할 수있는 글꼴은 없으며 다른 문자열의 높이/너비는 글꼴마다 다릅니다 (고정 폭이 약간 낫습니다). 또한, 다른 DPI 설정 같은 것들이 동일한 글꼴을 사용하는 경우에도 두통이 발생할 것입니다. 위젯이 정말로 고정 된 크기인지 그리고 글꼴 크기에 대한 가정이 필요한지 다시 생각해 보겠습니다. 거의 모든 경우에 유연한 레이아웃을 사용하고 플랫폼에서 제안하는 글꼴 및 글꼴 크기에 충실하면 UI가 더 유용하고 읽기 쉽고 나머지 바탕 화면과 일관됩니다.

+0

. 나는이 대답을 두려워했다. – JasonGenX

1

QFont::setPixelSize을 사용하면 플랫폼간에 일관된 글꼴 크기를 보장 할 수 있습니다.

1

목표는 텍스트 레이블의 선을 창 경계 밖으로 그리고 밖으로 그리지 않도록 유지하는 것이므로 런타임에 사용되는 글꼴 크기를 조정하는 것이 한 가지 해결책입니다.

QFontMetrics은 주어진 글꼴로 그리는 데 텍스트 문자열의 공간이 얼마나 필요한지 찾기 위해 boundingRect() 호출을 제공합니다. 그것들을 사용하면 문자열이 공간에 들어갈 수 있는지 테스트 할 수 있습니다. 맞지 않으면 글꼴 크기를 줄이고 다시 테스트하십시오.