4

HTMLコンテンツを表示するQWebViewがあり、CSSを使用してテキストのスタイルを設定しました。

body { font-size: 10pt; }

QWebViewのウィンドウにもQTextEditフィールドがあり、次のようにフォントを設定しました。

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

残念ながら、に表示されるテキストは、に表示QWebViewされるテキストよりもわずかに大きくなりますQTextEdit。これは、のDPI設定が異なることと関係があると感じていますQWebView

QWebViewとの両方で同じフォントサイズを表示する方法はありQTextEditますか?

ありがとう!

4

2 に答える 2

2

この動作の説明は、バグレポートに記載されています。

WebKitが固定解像度として96dpiを想定しているのは事実のようです。これがWebコンテンツの設計方法である場合、WebKitがWebブラウザーのようにWebコンテンツをレンダリングすることを期待している他の人々がいるため、これを変更する際に問題が発生します。https://www.webkit.org/blog/57/css-units/も参照してください

彼らは2つの解決策を提案しました:

QWebViewは、setZoomFactorsetTextMultiplierを提供します。これらは、目的の動作(QWidgetと一致する)を取得するために使用できると思います。

現在のDPIを使用して、ズーム率とテキスト乗数を計算できます。

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

を使用QWebSettings::ZoomTextOnlyすると、テキストにのみズームを適用できます。

于 2014-12-25T13:15:41.267 に答える
1

これは少し注意が必要です。正確なDPI測定値を取得するための良い方法は、QApplicationからです。例:

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

フォントに関する限り、使用QWidget::fontMetrics()して適切なフォントメトリック情報を取得できます。

両方を組み合わせると、Webビューとテキスト編集の間にある程度の一貫性が得られると思います。

幸運を。

于 2010-01-20T15:35:40.497 に答える