Qt5文件和图像打印

添加头文件

#include <QPrintDialog>
#include <QPrinter>
#include <QPainter>

Qt5中将Qprinter、QPrintDialog等类归入到了printsupport模块中,如果在项目中引入了上面的两个头文件,还需要在工程文件(.pro文件)中加入QT+=printsupport,否则编译会出错。

 

打印文本

void ImgProcessor::ShowPrintText()
{
    QPrinter printer;							//新建一个QPrinter对象
    QPrintDialog printDialog(&printer,this);	//(a)
    if(printDialog.exec())						//(b)
    {
       //获得QTextEdit对象的文档
        QTextDocument *doc =showWidget->text->document();
        doc->print(&printer);					//打印
    }
}

打印图像

打印图像实际上是在一个QPaintDevice中画图,与平常在QWidget、QPixmap和QImage中画图相同,都是创建一个QPainter对象进行画图,只是打印使用的是QPrinter,QPrinter本质上也是一个绘图设备QPaintDevice。

void ImgProcessor::ShowPrintImage()
{
    QPrinter printer;							//新建一个QPrinter对象
    QPrintDialog printDialog(&printer,this);	//(a)
    if(printDialog.exec())						//判断打印对话框显示后用户是否单击“打印”按钮
    {
        QPainter painter(&printer);				//指定绘图设备为一个QPrinter对象
        QRect rect =painter.viewport();         //获得QPainter对象的视图矩形区域
        QSize size = img.size();				//获得图像的大小
        /* 按照图形的比例大小重新设置视图矩形区域 */
        size.scale(rect.size(),Qt::KeepAspectRatio);
        painter.setViewport(rect.x(),rect.y(),size.width(),size.height());
        painter.setWindow(img.rect());          //设置QPainter窗口大小为图像的大小
        painter.drawImage(0,0,img);				//打印图像
    }
}

 

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值