QWebEngineView 和背景透明度

Posted

技术标签:

【中文标题】QWebEngineView 和背景透明度【英文标题】:QWebEngineView and background transparency 【发布时间】:2018-07-03 21:32:51 【问题描述】:

我正在使用 python 3.6.5 和 PyQt 5.10.1。

我尝试使用这个简单的代码来获得背景透明度,然后将此功能添加到 qutebrowser。

https://github.com/Rhylx/browser_bg_transparency

但它不起作用。我有一个白色背景的网页。有人有什么想法或线索可以帮助我解决它吗? 你认为它可以用 QWebEnginePage 完成吗?

【问题讨论】:

【参考方案1】:

试试看:

import sys
import argparse

from PyQt5.QtCore import Qt
from PyQt5.QtCore import QUrl
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWebEngineWidgets import QWebEngineView

def parse_args():
    """Parse commandline arguments."""
    parser = argparse.ArgumentParser()
    parser.add_argument('url', help='The URL to open')
    return parser.parse_known_args()[0]

if __name__ == '__main__':
    args = parse_args()
    app = QApplication(sys.argv)
    wv = QWebEngineView()

    wv.loadStarted.connect(lambda: print("Loading started"))
    wv.loadProgress.connect(lambda p: print("Loading progress: %".format(p)))
    wv.loadFinished.connect(lambda: print("Loading finished"))
    wv.setWindowFlags(Qt.FramelessWindowHint)
    wv.setAttribute(Qt.WA_TranslucentBackground, True)
    #wv.setStyleSheet("background:transparent;")

    wv.load(QUrl.fromUserInput(args.url))

    wv.setWindowOpacity(0.6)                                  # +++
    wv.setWindowFlags(Qt.WindowStaysOnBottomHint)             # +++

    wv.show()

    app.exec_()

test.html

<!DOCTYPE html>
<html>
    <head>
        <style>
        body 
            background-color: rgba(255,0,0,255);
            color: blue;
            font-size: 36px;
        
        </style>
    </head>
    <body>
        HELLO WORLD !!
    </body>
</html>

【讨论】:

好的,谢谢您的回答。问题在于整个页面变得透明(甚至内容,这里:Hello World !!)。是否可以只让背景透明? 你不是“Hello World !!”吗?透明?

以上是关于QWebEngineView 和背景透明度的主要内容,如果未能解决你的问题,请参考以下文章

如何在 QWebEngineView 中设置背景图像 [重复]

项目部署——宜家

PyQt5中的QWebEngineView和QWidget

PyQt5 中的 QWebEngineView 和 QWidget

Html表格背景颜色透明度怎么调,只用HTML和css

QWebEngineView 中的内存泄漏