QWebEnginePage.print 与 QPrintPreviewDialog 导致空预览
Posted
技术标签:
【中文标题】QWebEnginePage.print 与 QPrintPreviewDialog 导致空预览【英文标题】:QWebEnginePage.print with QPrintPreviewDialog results in empty preview 【发布时间】:2017-04-07 14:51:31 【问题描述】:我有一个程序曾经使用QWebKit
在对话框中显示和打印自定义生成的 html 报告,现在,我想将整个内容转换为 QWebEngine
。到目前为止一切正常,只有打印不行!
到目前为止,我使用QWebView.print()
将整个HTML 数据交给QPrintPreviewDialog
,这根本不是问题。现在,据我了解,我认为我必须使用 QWebEngineView.QWebEnginepage.print(printer object, callback)
来达到同样的效果。
遗憾的是,到目前为止我尝试的所有方法都没有奏效。 QPrintPreviewDialog 的预览窗格始终保持空白,打印完成后返回给回调的结果始终为 False - 尽管打印机对象始终有效,即使在回调中也是如此。
我尝试了不同的东西,它们以某种方式起作用,因此我认为 QWebEnginePage.print() 函数在某种程度上存在错误,或者 PyQt 中存在错误,但事实上,我没有,也许是我在做某事错了。
成功的解决方法(我不喜欢 ;-)):
不要使用QPrintPreviewDialog
,而是通过QWebEngineView.QWebEnginePage.printToPDF(filename)
生成输出:工作!
生成一个临时的QTextedit
对象并通过QPrintPreviewDialog
打印:也可以,但在我的情况下HTML 格式错误...
谁能告诉我,如果我在这里假设有问题,或者是否有一个关于如何使用QWebEngineView
通过QPrintPreviewDialog
打印 HTML 的下降示例?
【问题讨论】:
【参考方案1】:QtWebEngine 目前不支持打印到打印预览,请参阅QTBUG-57982。不过直接打印到 QPrinter 也可以。
【讨论】:
非常感谢!让我们希望它会尽快修复它!在那之前,我使用 QTextedit 解决方法。以上是关于QWebEnginePage.print 与 QPrintPreviewDialog 导致空预览的主要内容,如果未能解决你的问题,请参考以下文章