禁用QWebEngineView访问QFileDialog

时间:2017-01-19 08:14:21

标签: pyqt pyqt5 qwebview qfiledialog

我正在尝试开发一种允许下载的浏览器,但禁用所有上传内容到互联网的方式。我使用PyQt5开发了浏览器,但我无法弄清楚如何禁用FileDialog(例如,当点击在Gmail中添加附件时)。我已经设置了禁用其他标志之类的LocalContentCanAccessRemoteUrls和LocalContentCanAccessFileUrls之类的设置。我还将QWebEnginePage子类化并修改了“chooseFile”函数而没有任何运气。您可以在下面看到我的代码here you can find the UI and resources file

count = 0;
do
{
    ...
    if (statement)
        count++;
    ...
} while (count != 3);

1 个答案:

答案 0 :(得分:1)

您在WebPage课程中定义了错误的方法。看起来您可能使用了QtWebKit.QWebPage类中的签名,而不是QWebEnginePage类中的签名。这是一个最小的工作示例:

import sys
from PyQt5 import QtCore, QtWidgets, QtWebEngineWidgets

class WebPage(QtWebEngineWidgets.QWebEnginePage):
    def chooseFiles(self, mode, oldfiles, mimetypes):
        print('Called this')
        return []

class Window(QtWebEngineWidgets.QWebEngineView):
    def __init__(self):
        super(Window, self).__init__()
        self.setPage(WebPage(self))
        self.setHtml('<input type="file">')

if __name__ == '__main__':

    app = QtWidgets.QApplication(sys.argv)
    window = Window()
    window.setGeometry(600, 100, 400, 200)
    window.show()
    sys.exit(app.exec_())