qt tableb view 打印预览和打印的问题 个人解决办法
好了长话短说 因为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(" "));
}
}
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 打印预览和打印的问题 个人解决办法相关推荐
- 在C#里实现DATAGRID的打印预览和打印
作者Blog:http://blog.csdn.net/qieyj/ 很多人都在论坛里问,如何实现DATAGRID的打印预览和打印,现在我就把这方面的源代码告诉大家.这段代码也花费了我1个晚上的时间, ...
- html 打印预览跟实际不一样,打印预览和打印出来的不一样(总结自己遇到的问题和解决方法)...
1.打印预览和打印出来的不一样(表格里面的字出了表格)? 答:我在打监理月报时,经历的一个案例,其实这是因为你设置了居中,结果呢,表格进了下一页,所以这时有可能字就出了表格,只要将此单元格选定,然后选 ...
- 在网页中调用打印预览及打印设置
在网页中调用打印预览及打印设置 以下内容为程序代码: <OBJECT id=WB classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 heig ...
- java使用Bartender模板btw格式打印预览和打印SDK
java使用Bartender模板btw格式打印预览和打印SDK 下载 bartender-printer-sdk.jar 支持模板转图像 支持自定义纸张大小 支持局域网打印机打印 支持模板数据源模式 ...
- QT实现保存PDF、打印预览、打印的功能
目标: 1.实现文字.图像保存为pdf并在保存后自动打开的功能: 2.实现文字.图像打印预览的功能 3.实现文字.图像打印的功能 平台: VS 2019 + QT5.15.2 需要的类: QPaint ...
- 网页打印问题,打印设置,打印预览,打印分页,纵打,横打及页面的边距
1.控制"纵打". 横打"和"页面的边距 (1) <object id="factory" style="display ...
- java 打印预览_java打印和打印预览机制实例代码
代码如下: import java.awt.basicstroke; import java.awt.borderlayout; import java.awt.color; import java. ...
- C# 打印预览 PrintDocument打印、打印预览
#region 打印预览#region 变量 常量//以下用户可自定义 //当前要打印文本的字体及字号 private const int HeadHeight = 40;private static ...
- chrome html 打印预览,Chrome打印预览错误
我想打印一个html页面.html页面是由我开发的,这个页面可以用mozilla打印,即. 在Chrome中:当按下CTRL + P时会弹出预览窗口,但它会显示:"打印预览失败", ...
最新文章
- String、StringBuffer、StringBuilder源码解析
- linux ps命令 格式 进程状态 各字段含义 简介
- 一个整形数组中最大值求和问题(3)
- React setState流程解析
- lvs-nat负载均衡模式
- 吴恩达深度学习课程deeplearning.ai课程作业:Class 4 Week 1 Convolution model - Application
- 突然被工信部重罚!阿里云到底干了啥?
- vim永久取消空格颜色
- pro git 阅读笔记1 基本操作
- 哪些因素造成外贸网站没效果?
- HDU2564 词组缩写【文本】
- 热点:安全问题是否能将DNS推入云服务
- 四种方法求Capacitated Facility Location Problem问题
- dpdk优化(转)???
- 【进阶修炼】——改善C#程序质量(4)
- 基于python的opc读写和导入MSSQL/MYSQL的KepOPC中间件
- 小米笔记本适合计算机专业吗,真Pro还是假专业?细说小米新笔记本电脑五宗罪...
- 如何简单地设置一个LoRa网关?
- 大米产品体验师活动火热进行!感谢客户最真实的心声
- 大数据技术与人工智能的关系
热门文章
- Windows 10驱动签名_win 10驱动数字签名_驱动签名注意事项
- 实战 Java 第10天:商品分页查询
- 攻防世界——web新手题
- 服务器部署jdk,tomcat环境及腾讯云域名解析
- kinectfusion解析_KinectFusion介绍
- Arduino简单实现两自由度Scara机器人
- LeCun领导下的Meta AI,押注自监督
- 955 互联网公司白名单来了!这些公司月薪 20k,没有 996!福利榜国内大厂只有这家!...
- linux编译cu文件,Linux编译安装RTL8192CU芯片驱动
- 淘宝走过的大数据之路