크기가 고정되어 있으며 텍스트 레이블이있는 창이 있습니다. 비록 동일한 글꼴을 사용하지만 글꼴은 글꼴, 글꼴 크기가 응용 프로그램에서 상수 임에도 불구하고 레이블이 끝나는 위치에 의존 할 수없는 지점까지 Windows, Mac 및 Linux에서 다르게 보입니다.QT : 글꼴 및 글꼴 너비
그 해결책이 있습니까? 누군가 TTF 글꼴을 포함하고 사용하는 것에 대해 언급했지만 정말 필요합니까?
크기가 고정되어 있으며 텍스트 레이블이있는 창이 있습니다. 비록 동일한 글꼴을 사용하지만 글꼴은 글꼴, 글꼴 크기가 응용 프로그램에서 상수 임에도 불구하고 레이블이 끝나는 위치에 의존 할 수없는 지점까지 Windows, Mac 및 Linux에서 다르게 보입니다.QT : 글꼴 및 글꼴 너비
그 해결책이 있습니까? 누군가 TTF 글꼴을 포함하고 사용하는 것에 대해 언급했지만 정말 필요합니까?
모든 플랫폼에서 사용할 수있는 글꼴은 없으며 다른 문자열의 높이/너비는 글꼴마다 다릅니다 (고정 폭이 약간 낫습니다). 또한, 다른 DPI 설정 같은 것들이 동일한 글꼴을 사용하는 경우에도 두통이 발생할 것입니다. 위젯이 정말로 고정 된 크기인지 그리고 글꼴 크기에 대한 가정이 필요한지 다시 생각해 보겠습니다. 거의 모든 경우에 유연한 레이아웃을 사용하고 플랫폼에서 제안하는 글꼴 및 글꼴 크기에 충실하면 UI가 더 유용하고 읽기 쉽고 나머지 바탕 화면과 일관됩니다.
. 나는이 대답을 두려워했다. – JasonGenX
QFont::setPixelSize을 사용하면 플랫폼간에 일관된 글꼴 크기를 보장 할 수 있습니다.
목표는 텍스트 레이블의 선을 창 경계 밖으로 그리고 밖으로 그리지 않도록 유지하는 것이므로 런타임에 사용되는 글꼴 크기를 조정하는 것이 한 가지 해결책입니다.
QFontMetrics
은 주어진 글꼴로 그리는 데 텍스트 문자열의 공간이 얼마나 필요한지 찾기 위해 boundingRect()
호출을 제공합니다. 그것들을 사용하면 문자열이 공간에 들어갈 수 있는지 테스트 할 수 있습니다. 맞지 않으면 글꼴 크기를 줄이고 다시 테스트하십시오.
텍스트 라벨의 끝 부분에 의존하는 작업을 수행하려고합니까? –
고정 크기의 로그인 화면이 있습니다. 내 레이블은 화면에서 벗어날 수는 없지만 제어 할 수는 없다. 특정 플랫폼에서 레이블이 특정 폰트에 얼마나 많이 걸릴지 측정하는 지능적인 방법이있어이를 수용하기 위해 창을 동적으로 수정할 수 있습니까? – JasonGenX