Qt项目实战之文本编辑器--------第十二集

前面实现了文档的文字还有段落的操作,接下来我们准备去实现文档的打印还有打印预览功能。

文档打印实现:

向mainWindow.h添加函数:

public:
 void docPrint();//文档打印
private slots:
 void on_printAction_triggered();

槽函数on_PrintAction_triggered()函数就是去调用docPrint()函数。

函数实现:

void MainWindow::docPrint()
{
    //打印当然实现得有一个打印机
    QPrinter pter(QPrinter::HighResolution);//设置打印机的像素
    //有了打印架当然得有打印对话框
    QPrintDialog *ddlg=new QPrintDialog(&pter,this);
    if(activateChildWnd()){
        ddlg->setOption(QAbstractPrintDialog::PrintSelection,true);
    }
    ddlg->setWindowTitle("打印文档");

    //保存一下当前活动的子窗口
    ChildWnd *childWnd=activateChildWnd();
    if(ddlg->exec()==QDialog::Accepted){
        childWnd->print(&pter);
    }

    delete ddlg;
}

void MainWindow::on_printAction_triggered()
{
    docPrint();
}

打印功能当然需要一个打印机,在函数定义的时候首先定义一个打印机指定像素。打印那么肯定有一个打印提示框,定义一个QPrintDialog对象,再紧接着判断是否是活动窗口,如果是就将打印提示框的选项设置为用户可选择的。再获取当前的活动窗口,用模态的方式判断是否接受打印,接受打印调用子窗口QTextEdit的打印函数print,再删除自身创建的文本打印框。

打印预览实现:

mainWindow.h添加函数:

public:
 void docPrintPreview();//打印预览
private slots:
 void printPreview(QPrinter*printer);
    void on_printPreviewAction_triggered();

函数实现:

void MainWindow::docPrintPreview()
{
    QPrinter pter;
    QPrintPreviewDialog preview(&pter,this);
    connect(&preview,SIGNAL(paintRequested(QPrinter*)),
            this,SLOT(printPreview(QPrinter*)));
    preview.exec();
}


void MainWindow::printPreview(QPrinter *printer)
{
    activateChildWnd()->print(printer);
}

void MainWindow::on_printPreviewAction_triggered()
{
    docPrintPreview();
}

主要思想就是在主窗口点击打印预览的时候调用点击槽函数,点击槽函数再调用打印预览docPrint函数,首先呢定义一个打印机,因为在打印预览对话框会用到。在建立信号与槽,就是如果有打印需求的话,就调用printPreview函数,去实现打印。

程序效果:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值