Я пытаюсь экспортировать данные из QTreeView в PDF ... Как я могу распечатать все данные из QTreeview в один файл PDF?
это код, который я пробовал:
def printToPDF(self):
fn,_ = QFileDialog.getSaveFileName(self,'Export PDF',None,'PDF files(.pdf);;All Files()')
if fn !='':
if QFileInfo(fn).suffix()=='': fn +='.pdf'
printer= QPrinter(QPrinter.HighResolution)
printer.setOutputFormat(QPrinter.PdfFormat)
printer.setOutputFileName(fn)
painter = QPainter()
painter.begin(printer)
try:
self.treeView.render(painter)
finally:
painter.end()
Мне удалось сделать с ним файл PDF, но больше ничего.Я получаю только ту часть, которую можно увидеть, не перемещая свиток, и эта часть была уменьшена
Как решить эту проблему?Спасибо
РЕДАКТИРОВАТЬ:
class Stampaj_sve(QWidget):
def __init__(self, parent=None):
super(Stampaj_sve, self).__init__(parent)
# dodjeljuje tri vjuv prethodno definisanom okviru
lay = QtWidgets.QVBoxLayout(self)
# kreira liniju za unos teksta za pretragu
self.btn_stampaj=QPushButton()
self.btn_stampaj.setText('Export to PDF')
self.btn_stampaj.clicked.connect(self.printToPDF)
self.tableView = QTreeView()
# dodjeljuje okviru self.tableView
lay.addWidget(self.btn_stampaj)
lay.addWidget(self.tableView)
# pravi promjenjivu za pretragu baze podataka
self.model = QtSql.QSqlQueryModel()
self.model.setQuery("SELECT Lokacija,Kancelarija,Prezime,Ime,Telefon,Lokal,Fax,Oblast FROM telImenik")
# upisuje rezultate pretrage baze u self.tableView
self.tableView.setModel(self.model)
# odredjuje sirinu kolona u self.tableView-u prva kolona je 0-nulta,id nema potrebe dodavati jer ga sam odredjuje
for i, width in enumerate([150, 65, 100, 80, 90, 40, 80, 340]):
self.tableView.setColumnWidth(i, width)
def printToPDF(self):
fn, _ = QFileDialog.getSaveFileName(self, 'Export PDF', None, 'PDF files(.pdf);;All Files()')
if fn != '':
if QFileInfo(fn).suffix() == '': fn += '.pdf'
printer = QPrinter(QPrinter.HighResolution)
printer.setOutputFormat(QPrinter.PdfFormat)
printer.setOutputFileName(fn)
painter = QPainter()
painter.begin(printer)
try:
self.tableView.render(painter)
finally:
painter.end()
Я хочу, чтобы все строки из QTreeview отображались в одном файле PDF.У меня 126 рядов.