【问题标题】:Python Adding Pictures and headers to QPrintWidgetPython将图片和标题添加到QPrintWidget
【发布时间】:2018-12-07 22:34:55
【问题描述】:

如何向我的 QPrintWidget /Printout 添加页眉和图片?

我发现this 非常漂亮的布局输出文件。我想让我的文件看起来像那样。我试图找到一个解释如何对文件进行“布局”的教程,但找不到任何内容。

如果有一些建议/帮助,我会很高兴的。

到目前为止,这是我的代码,表格是从 QTableWidget 中提取的:

 def handlePaintRequest(self, printer):
        document = QtGui.QTextDocument()
        cursor = QtGui.QTextCursor(document)

        table = cursor.insertTable(self.table.rowCount(), self.table.columnCount())

        for row in range(table.rows()):
            for col in range(table.columns()):
                it = self.table.item(row, col)
                if it is not None:
                    cursor.insertText(it.text())
                cursor.movePosition(QtGui.QTextCursor.NextCell)
        document.print_(printer)

【问题讨论】:

  • 标题我明白了,但是你想把图片放在pdf的哪个部分?
  • 嘿,我在最后添加了一张图片,说明它的外观。图片是右边那张。
  • 我应该在问题中添加任何内容以使其更好/更易于理解吗?我真的很想得到帮助。

标签: python-3.x pyqt5 qtextdocument qtextcursor


【解决方案1】:

我的答案基于您所指的上述链接.... 我只是向您展示如何添加标题..我不会更改当前的解决方案,只是给您一个可能的解决方案....

def paintPage(pageNumber, pageCount, painter, doc, textRect, footerHeight):

    .......................

    headerRect = QtCore.QRectF(textRect)
    headerRect.setTop(textRect.top())
    headerRect.setHeight(2*footerHeight)

    .......................

painter.drawText(footerRect, QtCore.Qt.AlignCenter, "Page {} of {}".format(pageNumber+1, pageCount))
painter.drawText(headerRect, QtCore.Qt.AlignLeft, "{}\n{}".format('Project name:', 'Project number:'))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-04
    • 1970-01-01
    • 2013-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-21
    相关资源
    最近更新 更多