知方号

知方号

python 报表打印预览

我正在尝试将QTableView的内容打印到打印机。我实现了底层脚本,它成功运行,没有任何错误。但是所有的数据在printPreview中都是不寻常的。这是我的问题中的pic-FOUNTAINdef printTable(self,printer,painter,area):

model = self.model

myTableView = self.view

printer = painter

rows = model.rowCount();

columns = model.columnCount();

totalWidth = 0.0;

totalPageHeight = 0.0;

totalHeight = 0.0;

for c in range(columns):

totalWidth += myTableView.columnWidth(c)

for p in range(45):

totalPageHeight += myTableView.rowHeight(p);

for r in range(rows):

totalHeight += myTableView.rowHeight(r);

xscale = area.width() / totalWidth;

yscale = area.height() / totalHeight;

pscale = area.height() / totalPageHeight;

painter.scale(xscale, pscale);

painter.translate(area.x() + xscale, area.y() + yscale);

x=0

#QStyleOptionViewItem option;

for r in range(rows):

++x

for c in range(columns):

idx = model.index(r,c);

option = myTableView.viewOptions();

option.rect = myTableView.visualRect(idx);

if r % 2 == 0:

brush= QtGui.QBrush(QtGui.QColor(220, 220, 220), QtCore.Qt.SolidPattern);

painter.fillRect(option.rect, brush);

myTableView.itemDelegate().paint(painter, option, idx);

if (x == 45):

ok = printer.newPage();

x=0;

painter.translate(0, -1350);

####################### Now print Table ######################

printer = QtGui.QPrinter()

painter = QtGui.QPainter()

painter.begin(printer )

self.printTable(printer,painter, printer.pageRect())

如果你有什么可以帮助我的例子,请告诉我。非常感谢你

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。