한 가지 방법으로 감사하겠습니다 내가 이것에 대한 예를 찾을 수 없습니다 나는이 문서에서 많은 것을 이해하지 못한다 테이블 내용을 QTextDocument
에 덤프 한 다음 인쇄하십시오.
다음 데모는 간단한 텍스트 테이블을 사용하지만, HTML은 더 정교한 형식을 얻기 위해 사용될 수있다 :
from PyQt4 import QtGui, QtCore
class Window(QtGui.QWidget):
def __init__(self, rows, columns):
QtGui.QWidget.__init__(self)
self.table = QtGui.QTableView(self)
model = QtGui.QStandardItemModel(rows, columns, self.table)
for row in range(rows):
for column in range(columns):
item = QtGui.QStandardItem('(%d, %d)' % (row, column))
item.setTextAlignment(QtCore.Qt.AlignCenter)
model.setItem(row, column, item)
self.table.setModel(model)
self.buttonPrint = QtGui.QPushButton('Print', self)
self.buttonPrint.clicked.connect(self.handlePrint)
self.buttonPreview = QtGui.QPushButton('Preview', self)
self.buttonPreview.clicked.connect(self.handlePreview)
layout = QtGui.QGridLayout(self)
layout.addWidget(self.table, 0, 0, 1, 2)
layout.addWidget(self.buttonPrint, 1, 0)
layout.addWidget(self.buttonPreview, 1, 1)
def handlePrint(self):
dialog = QtGui.QPrintDialog()
if dialog.exec_() == QtGui.QDialog.Accepted:
self.handlePaintRequest(dialog.printer())
def handlePreview(self):
dialog = QtGui.QPrintPreviewDialog()
dialog.paintRequested.connect(self.handlePaintRequest)
dialog.exec_()
def handlePaintRequest(self, printer):
document = QtGui.QTextDocument()
cursor = QtGui.QTextCursor(document)
model = self.table.model()
table = cursor.insertTable(
model.rowCount(), model.columnCount())
for row in range(table.rows()):
for column in range(table.columns()):
cursor.insertText(model.item(row, column).text())
cursor.movePosition(QtGui.QTextCursor.NextCell)
document.print_(printer)
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
window = Window(25, 2)
window.resize(300, 400)
window.show()
sys.exit(app.exec_())
시작 Qt는 문서를 읽기 : http://doc.qt.nokia.com/4.7 여기
는 사용자 정의 인쇄 방법을 수행하여, 테이블에서 직접 인쇄 할 수있는 방법의 대략적인 예입니다 -snapshot/printing.html –고마워,하지만 난 파이썬으로 C + + 코드를 변환하는 데 문제가 있습니다. 나는 C++을 정말로 모른다. 그러나 Qt 문서는 때때로 도움이된다. –
이 질문은 실제 질문이 아니라 어떻게 닫히지 만 다음은 퀴즈없이 전달됩니까? http://stackoverflow.com/questions/3147030/qtableview-printing?rq=1 – neuronet