我在尝试将完整的表格视图从我的 PyQt 应用程序导出到 pdf 时遇到了一个主要障碍。
我已经能够导出某种 pdf,但它们总是被当前的查看区域修剪掉。
我正在寻找一个导出完整表格视图的示例,即使在导出时只有一些可见。
我在这个 tableview 中有一些缩略图,所以我想这将是捕捉可见图像的东西。
这是我到目前为止的代码,它设法导出带有部分 tableview 的 pdf。任何提示将不胜感激!
def _print(self, checked = None):
if checked == None: return
fileName = QtGui.QFileDialog.getSaveFileName(self, 'Save File', '', 'PDF Files (*.pdf)')
if fileName == '': return
#set up the QPrinter
p = QtGui.QPrinter(QtGui.QPrinter.HighResolution)
p.setPaperSize(QtGui.QPrinter.A4)
p.setOutputFormat(QtGui.QPrinter.PdfFormat)
p.setOrientation(QtGui.QPrinter.Landscape)
p.setOutputFileName(fileName)
#set up the painter
painter = QtGui.QPainter()
#Activate the painter to paint on p then give visual conformation that it worked or not.
#If didn't work return out of method.
if painter.begin(p) == False:
msgBox = QtGui.QMessageBox()
msgBox.setText('An Error occoured while creating PDF')
msgBox.setInformativeText('Could not save PDF')
msgBox.setIcon(QtGui.QMessageBox.Critical)
msgBox.exec_()
return
#self.ShotTableView.scale(200, 200);
#painter.begin(printer)
print self.ShotTableView.width()
xscale = (self.ShotTableView.width() / 50);
yscale = (self.ShotTableView.height() / 50);
#scale = qMin(xscale, yscale);
painter.scale(xscale, yscale);
self.ShotTableView.render(painter)
painter.end()