2017-01-30 13 views
1

WebEngineViewのhtmlコンテンツの一部にカスタムフォント(qrcのフォントがあります)を適用するにはどうすればよいですか?WebEngineView:htmlコンテンツにカスタムフォントを設定

+0

それは '* View'なので、あなただけのコンテンツを編集することはできません。あるいは、回避策としてページHTMLコードを取得し、それを変更し、 'WebEngineView.loadHtml()'を呼び出すことによって設定することができます。 – folibis

+0

HTMLコンテンツに 'WebEngineView.loadHtml()'がロードされています。 'TextArea {font.family:" myFont "}'のようにQMLのカスタムフォントを使うことができます。それは働いています。問題は、WebEngineViewのCSSを使ってHTMLコンテンツからこのフォントを使用する方法です。 – mroot

答えて

1

私は(私はこれがどのように安全ではわからない)私のカスタムフォントを使用する方法を考え出し:

  1. QRCにカスタムフォントを追加します。://res/font/myfont.ttf
  2. このコンテンツをQRCにstyle.cssを作成します。

    WebEngineView { 
        id: webEngineView 
        onLoadingChanged: { 
         if (loadRequest.status == WebEngineView.LoadSucceededStatus) { 
         webEngineView.runJavaScript(
          "var headHTML = document.documentElement.getElementsByTagName('head')[0].innerHTML;" + 
          "headHTML += '<link rel=\"stylesheet\" href=\"qrc:/css/styles.css\">';" + 
          "document.documentElement.getElementsByTagName('head')[0].innerHTML = headHTML;" 
          ); 
         }     
        } 
    } 
    
  3. そして最後には、このコマンドを使用してアプリケーションを実行します。コンテンツは、あなたのstyle.css HTMLに追加WebEngineViewにロードQMLで

    @font-face { 
        font-family: myfont; 
        src: url('qrc:/res/font/myfont.ttf'); 
        font-weight: bold; 
    } 
    
    body { 
        font-family: 'myfont'; 
        text-align: justify; 
        line-height: 25px; 
    } 
    
  4. 行引数--disable-web-security