PyQt5与Qt 5.8:QWebEnginePage.print与QPrintPreviewDialog导致空预览

时间:2017-04-07 14:51:31

标签: python qt printing pyqt5 qt5.8

我有一个程序曾经使用QWebKit在对话框中显示和打印自定义生成的HTML报告,现在,我想将整个事物转换为QWebEngine。到目前为止一切正常,只有印刷没有!

到目前为止,我使用QWebView.print()将整个HTML数据移交给QPrintPreviewDialog,这根本不是问题。现在,根据我的理解,我认为我必须使用QWebEngineView.QWebEnginepage.print(printer object, callback)来实现同样的目标。

可悲的是,到目前为止我尝试过的一切都没有奏效。 QPrintPreviewDialog的预览窗格始终为空,打印完成后返回给回调的结果始终为False - 尽管打印机对象在整个时间内仍然有效,即使在回调中也是如此。

我尝试了不同的东西,它们以某种方式起作用,因此我认为,QWebEnginePage.print()函数在某种程度上是错误的,或者PyQt中有一个错误,但事实上,我没有,也许是我在做某事错。

成功的解决方法(我不喜欢;-)):

  1. 请勿使用QPrintPreviewDialog,而是通过QWebEngineView.QWebEnginePage.printToPDF(filename)生成输出:working!

  2. 生成一个临时的QTextedit对象,并通过QPrintPreviewDialog打印出来:在我的情况下也有效,但格式错误的HTML ...

  3. 有人可以告诉我,如果我在这里假设有问题,或者有关于如何使用QPrintPreviewDialog通过QWebEngineView打印HTML的下降示例吗?

1 个答案:

答案 0 :(得分:0)

QtWebEngine目前不支持打印到打印预览,请参阅QTBUG-57982。直接打印到QPrinter可以正常工作。