• 7237阅读
  • 0回复

QPrintViewDialog打印QTableWidget与显示格式不统一 [复制链接]

上一主题 下一主题
离线darksun
 
只看楼主 倒序阅读 楼主  发表于: 2009-12-08
我目前在写一个显示数据的应用,选择不同的文件,把文件中的一部分数据以表格形式显示出来。
使用QTableWidget实现,在实现过程中调用
    resizeColumnsToContents();
来调节宽度,
然后我从example里抄了一段代码来打印

#ifndef QT_NO_PRINTER
     QPrinter printer(QPrinter::ScreenResolution);
     QPrintPreviewDialog dlg(&printer);
     PrintView view;
     view.setModel(b->model());
//     view.resizeColumnsToContents();
     connect(&dlg, SIGNAL(paintRequested(QPrinter *)),
             &view, SLOT(print(QPrinter *)));
     dlg.exec();
#endif
b是一个继承QTableWidget自己实现的表格,根据文件不同重绘一次。
PrintView是继承QTableView,再实现了一个print的SLOT,只起到生成打印范围的作用。
这时预览与打印出的表格宽度与显示的并不一样,我发现在窗体中用鼠标拖拽表格宽度和高度,也完全无法影响打印出来的效果。
我正在看Model/View那部分的手册,但是想不出来问题出在哪里。

是否有某个函数可以让b的model更新为屏幕上显示的。

ps:通过view既QTalbeView的宽度及设置是可以改变打印效果,例如我注释掉的这行,但是总觉得不对劲,因为看到的和打印出的不一样。
样例demonstrations->spreadsheet有同样的问题,希望有相关经验的朋友给点提示。
快速回复
限100 字节
 
上一个 下一个