好了长话短说  因为tableview 不提供print 函数 ,所以 要实现打印现在基本是基于 两种  一种是利用render 函数    一种是利用 html 来实现    我个人因为在用render方法的时候 打印预览是空白的  (同事使用相同的代码,在qt4.8+vs2008可以实现) 所以使用了html 来实现  。OK贴代码

// 打印预览

QPrinter printer(QPrinter::ScreenResolution);

    QPrintPreviewDialog preview(&printer);
    connect(&preview, SIGNAL(paintRequested(QPrinter *)),this,SLOT(print(QPrinter* )));
    preview.exec();
//打印
QString strStream,strTitle;
    QTextStream out(&strStream);
    strTitle="carman——feng";
    const int rowCount = ui->tableView->model()->rowCount();
    const int columnCount = ui->tableView->model()->columnCount();
    out <<  "<html>\n"
            "<head>\n"
            "<meta Content=\"Textml; charset=Windows-1251\">\n"
         <<  QString("<title>%1</title>\n").arg(strTitle)
          <<  "</head>\n"
              "<body bgcolor=#ffffff link=#5000A0>\n"
              "<table border=1 cellspacing=0 cellpadding=2>\n";
    // headers
    out << "<thead><tr bgcolor=#f0f0f0>";
    for (int column = 0; column < columnCount; ++column)
        if (!ui->tableView->isColumnHidden(column))
            out << QString("<th>%1</th>").arg(ui->tableView->model()->headerData(column, Qt::Horizontal).toString());
    out << "</tr></thead>\n";
    // data table
    for (int row = 0; row < rowCount; ++row)
    {
        out << "<tr>";
        for (int column = 0; column < columnCount; ++column)
        {
            if (!ui->tableView->isColumnHidden(column)) {
                QString data = ui->tableView->model()->data(ui->tableView->model()->index(row, column)).toString().simplified();
                out << QString("<td bkcolor=0>%1</td>").arg((!data.isEmpty()) ? data : QString("&nbsp;"));
            }
        }
        out << "</tr>\n";
    }
    out <<  "</table>\n"
            "</body>\n"
            "<ml>\n";
    QTextDocument *document = new QTextDocument();
    document->setHtml(strStream);
    document->print(printer);
html的方法在qt 5.5 \5.6 版本的minGW 测试 可行  

qt tableb view 打印预览和打印的问题 个人解决办法相关推荐

  1. 在C#里实现DATAGRID的打印预览和打印

    作者Blog:http://blog.csdn.net/qieyj/ 很多人都在论坛里问,如何实现DATAGRID的打印预览和打印,现在我就把这方面的源代码告诉大家.这段代码也花费了我1个晚上的时间, ...

  2. html 打印预览跟实际不一样,打印预览和打印出来的不一样(总结自己遇到的问题和解决方法)...

    1.打印预览和打印出来的不一样(表格里面的字出了表格)? 答:我在打监理月报时,经历的一个案例,其实这是因为你设置了居中,结果呢,表格进了下一页,所以这时有可能字就出了表格,只要将此单元格选定,然后选 ...

  3. 在网页中调用打印预览及打印设置

    在网页中调用打印预览及打印设置 以下内容为程序代码: <OBJECT  id=WB classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 heig ...

  4. java使用Bartender模板btw格式打印预览和打印SDK

    java使用Bartender模板btw格式打印预览和打印SDK 下载 bartender-printer-sdk.jar 支持模板转图像 支持自定义纸张大小 支持局域网打印机打印 支持模板数据源模式 ...

  5. QT实现保存PDF、打印预览、打印的功能

    目标: 1.实现文字.图像保存为pdf并在保存后自动打开的功能: 2.实现文字.图像打印预览的功能 3.实现文字.图像打印的功能 平台: VS 2019 + QT5.15.2 需要的类: QPaint ...

  6. 网页打印问题,打印设置,打印预览,打印分页,纵打,横打及页面的边距

    1.控制"纵打". 横打"和"页面的边距 (1) <object  id="factory"  style="display ...

  7. java 打印预览_java打印和打印预览机制实例代码

    代码如下: import java.awt.basicstroke; import java.awt.borderlayout; import java.awt.color; import java. ...

  8. C# 打印预览 PrintDocument打印、打印预览

    #region 打印预览#region 变量 常量//以下用户可自定义 //当前要打印文本的字体及字号 private const int HeadHeight = 40;private static ...

  9. chrome html 打印预览,Chrome打印预览错误

    我想打印一个html页面.html页面是由我开发的,这个页面可以用mozilla打印,即. 在Chrome中:当按下CTRL + P时会弹出预览窗口,但它会显示:"打印预览失败", ...

最新文章

  1. String、StringBuffer、StringBuilder源码解析
  2. linux ps命令 格式 进程状态 各字段含义 简介
  3. 一个整形数组中最大值求和问题(3)
  4. React setState流程解析
  5. lvs-nat负载均衡模式
  6. 吴恩达深度学习课程deeplearning.ai课程作业:Class 4 Week 1 Convolution model - Application
  7. 突然被工信部重罚!阿里云到底干了啥?
  8. vim永久取消空格颜色
  9. pro git 阅读笔记1 基本操作
  10. 哪些因素造成外贸网站没效果?
  11. HDU2564 词组缩写【文本】
  12. 热点:安全问题是否能将DNS推入云服务
  13. 四种方法求Capacitated Facility Location Problem问题
  14. dpdk优化(转)???
  15. 【进阶修炼】——改善C#程序质量(4)
  16. 基于python的opc读写和导入MSSQL/MYSQL的KepOPC中间件
  17. 小米笔记本适合计算机专业吗,真Pro还是假专业?细说小米新笔记本电脑五宗罪...
  18. 如何简单地设置一个LoRa网关?
  19. 大米产品体验师活动火热进行!感谢客户最真实的心声
  20. 大数据技术与人工智能的关系

热门文章

  1. Windows 10驱动签名_win 10驱动数字签名_驱动签名注意事项
  2. 实战 Java 第10天:商品分页查询
  3. 攻防世界——web新手题
  4. 服务器部署jdk,tomcat环境及腾讯云域名解析
  5. kinectfusion解析_KinectFusion介绍
  6. Arduino简单实现两自由度Scara机器人
  7. LeCun领导下的Meta AI,押注自监督
  8. 955 互联网公司白名单来了!这些公司月薪 20k,没有 996!福利榜国内大厂只有这家!...
  9. linux编译cu文件,Linux编译安装RTL8192CU芯片驱动
  10. 淘宝走过的大数据之路