5

QWebView では、QWebView.setHtml() を使用して HTML を動的に作成およびロードしています。このメソッドに渡す HTML 文字列に<style>は、外部ファイルから CSS 文字列を挿入するセクションがあります。CSS は、フォント ファミリを除いて、美しく機能しています。フォントは常に QWebView のデフォルトのサンセリフ フォントに戻ります。を使用してデフォルトのフォントを変更することはできますQWebView.settings().setFontFamily(QtWebKit.QWebSettings.StandardFont, "serif")が、CSS の font-family の値を尊重する代わりに、ページ上のすべてのフォントをセリフ フォントにするだけです。

私のCSSファイルの関連セクション:

.page-title {
    color:#BBBBBB;
    font-family:"Times New Roman",Garamond,serif;
}

これは期待どおりのセリフ フォントではなく、一般的なサンセリフ フォントでレンダリングされます。ただし、色は問題なく表示されます。

ある時点で、デバッグのために、QWebView.setHtml() を呼び出す直前に完全な HTML 文字列を出力し、出力をファイルにリダイレクトしました。このファイルを Chromium で開いたときに期待どおりにレンダリングされたため、問題はHTML/CSSの問題ではないと思いました。興味がある場合は、その出力を次に示します。

編集:ここで報奨金を設定しているので、重要なすべてを要約する必要がある簡単な tl;dr を次に示します。

PySide を使用して、QWebView.setHtml() を介してロードされる HTML ページで QWebView が CSS フォントファミリ設定を尊重するようにするにはどうすればよいですか? 具体的には、その種の動作のオンとオフを切り替える秘密の隠された設定はありますか? または、これをフレームワークのバグとして報告する必要がありますか?

これを自分でテストしたい場合は、が取り組んでいるプロジェクトの GitHub リポジトリへのリンクを次に示します。依存関係は README に記載されています。

4

1 に答える 1