2012年(46)
分类: C/C++
2012-05-07 12:17:08
摘自: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 *)函数。最后使用exec来show出打印预览对话框。printPreview(QPrinter *)函数如下:
void MainWindow::printPreview (QPrinter *printer)
{
textEdit->print(printer);
}
调用textEdit的print方法将内容显示在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/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利