Python 添加图片和 headers 到 QPrintWidget
Python Adding Pictures and headers to QPrintWidget
如何向我的 QPrintWidget /Printout 添加 header 和图片?
我发现 非常漂亮的布局输出文件。我想让我的文件看起来像那样。我试图找到解释如何对文件进行 'layouting' 操作的教程,但找不到任何内容。
我会很高兴一些 suggestions/help。
到目前为止,这是我的代码,其中 table 是从 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)
我的回答是基于你所指的上述link....
我只是告诉你如何添加 header..我不会改变当前的解决方案,只是给你一个可能的解决方案....
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:'))
如何向我的 QPrintWidget /Printout 添加 header 和图片?
我发现
我会很高兴一些 suggestions/help。
到目前为止,这是我的代码,其中 table 是从 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)
我的回答是基于你所指的上述link.... 我只是告诉你如何添加 header..我不会改变当前的解决方案,只是给你一个可能的解决方案....
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:'))