为QWebView设置透明背景

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);
1个回答

5
这对我有效:
view->setStyleSheet("background:transparent");
view->setAttribute(Qt::WA_TranslucentBackground);

是的,下一个里程碑将是在我点击透明区域时激活后台窗口。 :-) - Ionică Bizău
@Johnツ 好的,我明天检查一下。 - Davlog
QPalette是怎么回事?为什么会抛出QPalette没有setStyleSheet属性的错误? - Santosh Kumar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接