4

我在尝试将完整的表格视图从我的 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()
4

0 回答 0