PySide2 QWebEngineView Сбой при принятии fullScreenRequest с request.accept () - PullRequest
0 голосов
/ 04 мая 2020

Я программирую веб-браузер на Python, используя PySide2. Я хочу сделать полноэкранный режим.

Я включил его с помощью self.browser.settings().setAttribute(QWebEngineSettings.FullScreenSupportEnabled, True) и после этого я подключил запрос с помощью команды self.browser.page().fullScreenRequested.connect(self.fullScreen)

Моя функция включения полноэкранного режима

   def fullScreen(self, request):
       request.accept()
       if request.toggleOn():
           self.browser.showFullScreen()
       else:
           self.setCentralWidget(self.browser)

Я пытался удалить request.accept(), но когда я его удаляю, он не вызывает sh, но не включает полноэкранный режим на YouTube.

Вот полный код.

from PySide2.QtCore import *
from PySide2.QtCore import Slot
from PySide2.QtWidgets import *
from PySide2.QtGui import *
from PySide2.QtWebEngineWidgets import *
import sys

class MainWindow(QMainWindow):
    def __init__(self, *args, **kwargs):

        super(MainWindow,self).__init__(*args, **kwargs)

        self.setWindowTitle("Browser")

        self.browser = QWebEngineView()
        self.browser.load(QUrl("https://google.com"))

        self.browser.settings().setAttribute(QWebEngineSettings.PluginsEnabled, True)
        self.browser.settings().setAttribute(QWebEngineSettings.LocalStorageEnabled, True)
        self.browser.settings().setAttribute(QWebEngineSettings.JavascriptEnabled, True)
        self.browser.settings().setAttribute(QWebEngineSettings.AutoLoadImages, True)
        self.browser.settings().setAttribute(QWebEngineSettings.AutoLoadIconsForPage, True)
        self.browser.settings().setAttribute(QWebEngineSettings.JavascriptCanOpenWindows, True)
        self.browser.settings().setAttribute(QWebEngineSettings.FullScreenSupportEnabled, True)

        self.browser.page().fullScreenRequested.connect(self.fullScreen)

        self.setCentralWidget(self.browser)

        self.show()

    @Slot(bool)
    def fullScreen(self, request):
        request.accept()
        if request.toggleOn():
            self.browser.showFullScreen()
        else:
            self.browser.showNormal()


if __name__ == "__main__":
    app = QApplication(sys.argv)

    window = MainWindow()
    window.show()

    app.exec_()

Спасибо за любой ответ!

...