QT打印及打印预览

本文介绍了如何在Qt应用中使用QPrintDialog和QPrintPreviewDialog进行文档打印和预览,包括设置打印机参数、选择打印机、预览页面绘制以及执行对话框。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先需要在.pro文件中加入打印模块

QT += printsupport # 打印模块

打印及打印预览实现

#include <QtPrintSupport/QPrinter>
#include <QtPrintSupport/QPrintDialog>
#include <QtPrintSupport/QPrintPreviewDialog>

void MainWindow::docPrint()
{
    QPrinter pter(QPrinter::HighResolution);//打印机像素使用的是选中的打印机像素
    QPrintDialog *ddlg = new QPrintDialog(&pter,this);
    if(activeChildWnd())
        ddlg->setOption(QAbstractPrintDialog::PrintSelection, true);
    ddlg->setWindowTitle("打印文档");
    ChildWnd* childWnd = activeChildWnd();
    if(ddlg->exec() == QDialog::Accepted)
        childWnd->print(&pter);
    delete ddlg;
}

void MainWindow::docPrintPreview()
{
    QPrinter pter(QPrinter::HighResolution);//打印机
    QPrintPreviewDialog preview(&pter,this);
    connect(&preview, SIGNAL(paintRequested(QPrinter*)),
             this,SLOT(printPreview(QPrinter*)));
    preview.exec();//调用预览窗口
}

void MainWindow::printPreview(QPrinter *printer)
{
    activeChildWnd()->print(printer);//activeChildWnd()返回当前文档编辑子窗口
}

以下为官方对QPrintDialog、 OPrintPreviewDialog对象的描述

QPrintDialog

该对话框允许用户更改与文档相关的设置,如纸张大小和方向、打印类型(彩色或灰度)、页面范围以及要打印的份数。还提供了控件,使用户能够从可用的打印机中进行选择,包括任何已配置的网络打印机。通常,QPrintDialog对象是用一个QPrint对象构造的,并使用exec()函数执行。

QPrintDialog printDialog(printer, parent);
  if (printDialog.exec() == QDialog::Accepted) {
      // print ...
  }

 OPrintPreviewDialog:

在现有应用程序中使用OPrintPreviewDialog非常简单:

1.创建OPrint Preview对话框。
您可以使用现有的QPrinter对象构造一个OPrintPreviewDialog,也可以让QP rint preview Dialog为您创建-个OP rint Dialog,它将成为系统默认打印机。
2.将paintRequested()信号连接到插槽。
当对话框需要生成一组预览页面时,将发出paintRequested()信号。实际打印时可以使用与生成预览时完全相同的代码,包括调用QPrinter::newPage()在预览中开始一个新页面。将插槽连接到paintRequested()信号,在该信号中绘制传递到插槽中的OPrinter对象。
3.调用 exec()。
调用OPrintPreviewDialog::exec()以显示预览对话框。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值