首页 > 解决方案 > PySide6 setPageMargins()

问题描述

我尝试在 PySide6 中设置 qprinter 边距它会引发错误

PySide6.QtGui.QPagedPaintDevice.setPageMargins():参数太多

    document = QtGui.QTextDocument()
    p = QtPrintSupport.QPrinter()
    p.setResolution(100)
    
    p.setPageMargins(1, 6, 1, 1, QtPrintSupport.QPrinter().Millimeter)
    document.setPageSize(QSizeF(p.pageRect().size()))

这适用于 PyQt5

标签: pythonpyside6

解决方案


似乎 PySide6 对枚举更严格,不会像 PyQt5 那样自动转换,所以代码应该是:

document = QtGui.QTextDocument()
p = QtPrintSupport.QPrinter()
p.setResolution(100)

p.setPageMargins(QtCore.QMargins(1, 6, 1, 1), QtGui.QPageLayout.Millimeter)
document.setPageSize(
    QtCore.QSizeF(p.pageRect(QtPrintSupport.QPrinter.Millimeter).size())
)

推荐阅读