You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyQt6中QPrintPreviewDialog无法将页面方向同步至Windows打印对话框的问题

PyQt6中QPrintPreviewDialog无法将页面方向同步至Windows打印对话框的问题

我最近在PyQt6里设置默认打印方向时遇到了个棘手的问题。我配置了QPrinter实例并绑定到QPrintPreviewDialog,代码如下:

printer = QPrinter(QPrinter.PrinterMode.HighResolution)
printer.setDocName('Bulletin')
printer.setPageSize(QPageSize(QPageSize.PageSizeId.Letter))
printer.setPageMargins(QMarginsF(0.25, 0.25, 0.25, 0.25))
printer.setPageOrientation(QPageLayout.Orientation.Landscape)

print_preview_dialog = QPrintPreviewDialog(printer)
print_preview_dialog.paintRequested.connect(lambda: self.do_print(pdf_doc, printer, preview=True))
result = print_preview_dialog.exec()

当预览对话框弹出来时,一切都显示正常——页面是横向(Landscape)布局:

预览界面中内容以横向模式正确渲染,完全符合预期设置

但点击预览对话框里的打印按钮后,Windows系统的打印对话框弹出时,默认方向却变成了“纵向(Portrait)”:

Windows打印对话框的纸张方向选项默认选中了“纵向”,和预览的设置不一致

我已经谷歌搜索了好几天来寻找解决方案,大部分资料都提到调用setPageOrientation方法就能正确设置打印方向,但实际情况并非如此。

顺便提一下,我也试过直接使用QPrintDialog,传入同一个配置好的QPrinter实例,结果还是默认显示纵向。

补充环境信息:我使用的Qt版本是6.7.0,Windows系统版本为23H2,内部版本22631.4541。

备注:内容来源于stack exchange,提问作者Jeremy Wilson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 15:50:28