2013-03-21 1 views
1

QGraphicsTextItem을 만들고 회전합니다. 나는 플래그Qt에서 텍스트 렌더링 4.83.4

mMapView->setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing); 

렌더링을 사용하지만 회전하지 않을 경우 텍스트 항목은보고 좋다.

enter image description here

어떻게 그것을 해결하기 위해?

고맙습니다.

답변

2

조금 까다 롭습니다. 나는 당신이 Windows에서 일하고 있다고 가정합니다.

당신은

... hintingPreference(QFont::PreferNoHinting) 

는 다음 구성과에 직접 기록으로 Qt는 라이브러리를 컴파일 할 필요가에 라인 (75)에 파일 ...\src\gui\text\qfont_p.h에서 힌트 기본값을 변경해야합니다.
configure -opensource -debug-and-release -directwrite 
nmake 

당신이 1 픽셀 폭으로 선을 그리면 수평 또는 수직으로 잘 될 것입니다 렌더링,

+0

어떤 버전의 Windows에서 작동합니까? – moxn

+0

@ niels-franksen, 감사합니다. 조언이 너무 유용합니다! 실행 후 지시문은'font.setLetterSpacing (QFont :: SpacingType :: AbsoluteSpacing, 0.1); 문자 간격을 설정하고 텍스트가 아름답게됩니다! 이 매개 변수를 사용하여 재 컴파일하지 않고 문자 간격을 설정하면 아무 효과가 없습니다. 미안 내 영어. – Ilya

+0

다음 문제 : Windows XP 사용자는 프로그램을 실행할 수 없습니다. Windows XP에서는 DWrite.dll이 없으므로 프로그램을 실행할 수 없습니다. Win 7 및 Win 8 사용자를 위해 멋진 글꼴을 만드는 방법과 Win XP를 찾는 것이 좋지 않은가요? 가능한가? – Ilya

0

(이 솔루션은 윈도우 XP에서 작동하지 않았다). 그러나 45 °와 같은 각도에서는 앤티 앨리어싱 (앤티 앨리어싱을 사용하는 경우에도) 때문에 추한 것입니다.

텍스트와 동일한 문제입니다. 글꼴 크기가 너무 좁아서 앨리어싱을 피할 수 있습니다.

더 큰 텍스트를 사용하여 문제를 해결할 수 있습니다 ...

+0

이 (작은) 글꼴을 사용해야합니다. Microsoft Word는 왜곡없이 텍스트를 사용할 수 있습니다! – Ilya