4

要素に透明な背景を設定しようとしていQWebViewます。

+---------------------------+
| x | Window title          | <<< Hidden borders and title bar
+---------------------------+     view->setWindowFlags(Qt::FramelessWindowHint);
|                           |
|     ******************    |   
|    ********************<--|------- This is the HTML side (a rectangle with
|     ******************    |        rounded corners)
|                         <-|-- with transparent background that must
+---------------------------+   remain transparent for the desktop window

WebView の透明な背景を設定する方法を検索したところ、すべての場所でこのコードが見つかりました。

QPalette pal = view->palette();
pal.setBrush(QPalette::Base, Qt::transparent);
view->page()->setPalette(pal);
view->setAttribute(Qt::WA_OpaquePaintEvent, false);

上記のコードは正しく動作しません。これは私のウィンドウがどのように見えるかです:

したがって、問題は灰色の部分が透明でなければならないということです。どうすればこれを解決できますか?

次のコードを使用して、ウィンドウの装飾を解除します。

view->setWindowFlags(Qt::FramelessWindowHint);
4

1 に答える 1

5

これは私のために働く:

view->setStyleSheet("background:transparent");
view->setAttribute(Qt::WA_TranslucentBackground);
于 2013-10-23T19:37:59.427 に答える