gpt4 book ai didi

c++ - QWebEnginePage 中的透明背景

转载 作者:可可西里 更新时间:2023-11-01 18:35:42 29 4
gpt4 key购买 nike

我们正在尝试将一些应用程序从 Qt 4 移植到 Qt 5.4。 Qt 5.4 有一个新的网络引擎。我们曾经把QWebViewQWebPage的背景做成透明的:

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

但此代码不适用于QWebEngineViewQWebEnginePage。关键是 QWebEnginePage 没有像 setPalette 这样的 API。

谁能找到解决这个问题的方法?

最佳答案

https://bugreports.qt.io/browse/QTBUG-41960 中所述,现在只需使用这一行即可:

webEngineView->page()->setBackgroundColor(Qt::transparent);

我已经在 Qt 5.6 中试过了,效果很好。

更新:为了让这个答案更有帮助,让我展示所有相关代码。

在 MainWindow 中,我设置了这个:

setAttribute(Qt::WA_TranslucentBackground);
setAutoFillBackground(true);
setWindowFlags(Qt::FramelessWindowHint);

对于 webEngineView 对象,我设置了这些属性:

webEngineView->setAttribute(Qt::WA_TranslucentBackground);
webEngineView->setStyleSheet("background:transparent");
webEnginePage = webEngineView->page();
// https://bugreports.qt.io/browse/QTBUG-41960
webEnginePage->setBackgroundColor(Qt::transparent);

关于c++ - QWebEnginePage 中的透明背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28183738/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com