QWebEngineView и прозрачность фона

Я использую Python 3.6.5 и PyQt 5.10.1.

Я пытался с помощью этого простого кода обеспечить прозрачность фона, а затем добавить эту функцию в qutebrowser.

https://github.com/Rhylx/browser_bg_transparency

Но это не работает. У меня есть веб-страница с белым фоном. У кого-нибудь есть идея или подсказка, которые могли бы помочь мне это исправить?
Как вы думаете, можно ли это сделать с помощью QWebEnginePage?


person Rhylx    schedule 03.07.2018    source источник


Ответы (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>

введите здесь описание изображения

person S. Nick    schedule 04.07.2018
comment
Хорошо, спасибо за ваш ответ. Проблема в том, что вся страница становится прозрачной (даже содержимое, здесь: Hello World !!). Можно ли сделать прозрачным только фон? - person Rhylx; 04.07.2018
comment
Разве ты не Привет Мир !! прозрачный? - person Rhylx; 04.07.2018