1

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で動作します

4

1 に答える 1

2

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())
)
于 2021-07-23T13:43:47.440 に答える