Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用pyqt5浏览器实现打印功能_Python_Html_Browser_Pyqt5_Qprinter - Fatal编程技术网

Python 如何使用pyqt5浏览器实现打印功能

Python 如何使用pyqt5浏览器实现打印功能,python,html,browser,pyqt5,qprinter,Python,Html,Browser,Pyqt5,Qprinter,当我使用pyqt5浏览器访问特定网页时,此网页中有一个打印按钮,但当我单击此打印按钮时,浏览器没有响应。在Firefox浏览器中,单击打印按钮后,将显示打印预览,并且我可以选择打印机。根据,打印预览尚未用于QtWebEngine,所以你只能直接打印 要捕获页面的打印请求,需要连接信号 遗憾的是,Qt Web引擎尚未提供打印机预览支持(请参阅),您只能直接打印。 class PrintTest(QtWidgets.QWidget): def __init__(self, parent=No

当我使用pyqt5浏览器访问特定网页时,此网页中有一个打印按钮,但当我单击此打印按钮时,浏览器没有响应。在Firefox浏览器中,单击打印按钮后,将显示打印预览,并且我可以选择打印机。

根据,打印预览尚未用于QtWebEngine,所以你只能直接打印

要捕获页面的打印请求,需要连接信号


遗憾的是,Qt Web引擎尚未提供打印机预览支持(请参阅),您只能直接打印。
class PrintTest(QtWidgets.QWidget):
    def __init__(self, parent=None):
        super(PrintTest, self).__init__(parent)
        layout = QtWidgets.QHBoxLayout(self)
        self.view = QtWebEngineWidgets.QWebEngineView()
        layout.addWidget(self.view)
        self.page = QtWebEngineWidgets.QWebEnginePage(self)
        self.view.setPage(self.page)
        self.page.printRequested.connect(self.printRequested)
        # load a page that has a print request
        self.view.load(QtCore.QUrl(
            "https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_print"))

    def printRequested(self):
        defaultPrinter = QtPrintSupport.QPrinter(
            QtPrintSupport.QPrinterInfo.defaultPrinter())
        dialog = QtPrintSupport.QPrintDialog(defaultPrinter, self)
        if dialog.exec():
            # printer object has to be persistent
            self._printer = dialog.printer()
            self.page.print(self._printer, self.printResult)

    def printResult(self, success):
        if success:
            QtWidgets.QMessageBox.information(self, 'Print completed', 
                'Printing has been completed!', QtWidgets.QMessageBox.Ok)
        else:
            QtWidgets.QMessageBox.warning(self, 'Print failed', 
                'Printing has failed!', QtWebEngineWidgets.QMessageBox.Ok)
            self.printRequested()
        del self._printer