2010-01-07 4 views
4

나는 약간의 HTML 콘텐츠를 표시하는 QWebView을하고 난 텍스트의 스타일을 CSS를 사용 :다른 QWidgets와 비교하여 QWebView의 DPI [글꼴 크기]가 다릅니 까?

body { font-size: 10pt; } 

QWebView와 창은 또한이 같은 글꼴을 설정하는 대한 QTextEdit 필드가 있습니다

QFont newFont; 
newfont.setPointSize(10); 
myEditField->setFont(newFont); 

불행히도 QWebView에 표시된 텍스트는 QTextEdit에 표시된 텍스트보다 약간 큽니다. 나는 이것이 DPI 설정이 QWebView에서 다른 것과 관련이 있다고 생각합니다.

모두 QWebViewQTextEdit 표시 같은 글꼴 크기를 얻을 수있는 방법이 있나요?

감사합니다.

답변

2

설명은 the bugreports에 주어졌다 :

웹킷은 고정 된 해상도 96 dpi의 가정 사실로 나타납니다. 이것이 웹 콘텐츠가 어떻게 디자인되어 있는지에 대한 문제라면, WebKit이 웹 브라우저 에서처럼 웹 콘텐츠를 렌더링 할 것을 기대하는 다른 사람들이 있기 때문에 우리는 그것을 변경하는 데 문제가 있습니다. 는 참조

https://www.webkit.org/blog/57/css-units/ 그들은 두 가지 솔루션 제안 :

QWebView 제공 setZoomFactor 내가 원하는 동작합니다 (는 QWidget 일치)을 얻을 수 있으리라 생각 setTextMultiplier을.

당신은 현재의 DPI를 사용하여 줌 배율 및 텍스트 배율을 계산할 수 있습니다

QWidget* window = QApplication::desktop()->screen(); 
const int horizontalDpi = window->logicalDpiX(); 
m_view->setZoomFactor(horizontalDpi/96.0); 

는 텍스트 만에 확대 적용 할 수 있습니다 QWebSettings::ZoomTextOnly 사용.

1

다소 까다 롭습니다.

QWidget* window = QApplication::desktop()->screen(); 
int horizontalDpi = window->logicalDpiX(); 

지금까지 글꼴이가는대로, 당신이 사용할 수있는 QWidget::fontMetrics() 좋은 글꼴 메트릭 정보를 얻을 : 나는 정확한 DPI 측정을 얻을 수있는 좋은 방법의 QApplication 예에서입니다 발견했다.

두 가지를 모두 사용하면 웹보기와 텍스트 편집간에 일관성이 유지됩니다.

행운을 빈다. 이 동작의