我正试图将一个完整的tableview从我的PyQt应用程序导出为pdf。
我已经能够进行某种类型的pdf导出,但它们总是被当前的整理 观景区。
我正在寻找一个示例来导出完整的tableview,即使只有一些在导出时可见。
我在这个tableview中有一些缩略图,所以我想这会抓住可见的图像。
这是我的sofar代码,它设法导出带有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()