Chinaunix首页 | 论坛 | 博客
  • 博客访问: 131011
  • 博文数量: 46
  • 博客积分: 571
  • 博客等级: 准尉
  • 技术积分: 290
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-26 23:57
文章分类

全部博文(46)

文章存档

2012年(46)

我的朋友

分类: C/C++

2012-05-07 12:17:08

C++ Qt 10:文本编辑器——打印文档

摘自:http://www.cnblogs.com/rophie/archive/2012/04/13/2445368.html

 

今天我们继续完善之前的文本编辑器,实现文件菜单中最后一个功能:打印预览和打印,修改头文件,声明打印、打印预览和一个printPreview槽函数

 

private slots:

    void filePrint();

    void filePrintPreview();

 

void printPreview(QPrinter *);

 

首先来实现打印预览功能

 

1 void MainWindow::filePrintPreview ()

2 {

3     QPrinter printer(QPrinter::HighResolution);

4     QPrintPreviewDialog preview(&printer, this);

5     preview.setWindowTitle (tr("打印预览"));

6     connect(&preview, SIGNAL(paintRequested(QPrinter*)), SLOT(printPreview(QPrinter*)));

7     preview.exec ();

8 }

 

首先初始化一个QPrinter类并设置它的打印模式为高分辨率打印,即600dpi;

QPrintPreviewDialog类需要生成一个预览页面的时候会发射一个paintRequested(QPrinter *)信号,我们链接到printPreview(QPrinter *)函数。最后使用execshow出打印预览对话框。printPreview(QPrinter *)函数如下:

void MainWindow::printPreview (QPrinter *printer)

{

    textEdit->print(printer);

}

调用textEditprint方法将内容显示在QPrintPreviewDialog

 

同样,打印功能也很类似:

void MainWindow::filePrint ()

{

     QPrinter printer(QPrinter::HighResolution);

     QPrintDialog *printDialog=new QPrintDialog(&printer,this);

     if(printDialog->exec ()==QDialog::Accepted)

      {

         textEdit->print (&printer);

      }

     delete printDialog;

}

 

如果用户点击确定,就会执行打印。

 

 

 

 

作者
出处http://rophie.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利

 

阅读(1145) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~