2016-05-06 11 views
0

の背景に過去のページ滞在は、私が(彼らはすべてのスタイル=を持っているいくつかのHTMLページを表示する透明QWebViewと小さなアプリケーションを持っています本文)QTabWidgetフォントを使用しています。Qtの透明QWebView:「:透明な背景色;」プロパティに新しいもの

透明性が働いている、私は私のQWebViewのコンテンツの横に私のQTabWidgetのフォントを見ることができます。しかし、私がQWebViewの別のページを読み込むと、古いものは新しいもののバックグラウンドで見えます。ページがちょうどもう一方の上に配置され、閉じられていない場合のように。

私はこの動作をどのように取り除き、どこから来るのか知りません!

+0

コードを表示してください – eyllanesc

答えて

0

最近QtJambiに似た問題がありました。読み込んだページは動的(javascriptとcss3のアニメーション)で、一部のコンポーネントが移動または変更されるたびに古いレンダリングをクリアせずに新しいレンダリングを描画しました。

今日解決策が見つかりました。 QWebViewから継承したクラスを作成し、paintEventメソッドで背景を透明に設定しました。バックグラウンドは、Webビューが再描画されるたびに透明に設定されます。ここで

は、私はそれがあまりにもC++で動作すると思います私のJavaコード

public class WebBrowserTestQWebView extends QWebView 
{ 
    @Override 
    public void paintEvent(QPaintEvent event) 
    { 
     QPalette palette = this.palette(); 
     palette.setBrush(QPalette.ColorRole.Base, new QBrush(new QColor(Qt.GlobalColor.transparent))); 
     this.setPalette(palette); 
     this.setAttribute(Qt.WidgetAttribute.WA_OpaquePaintEvent, false); 
     super.paintEvent(event); 
    } 
} 

です。