- 精通Qt4编程
- 蔡志明 卢传富 李立夏等编著
- 312字
- 2025-02-23 15:37:02
4.8 打印文档
现在还是以Qt设计器绘制的主窗口为例,在主窗口的“工具”菜单中添加一个打印菜单命令,并实现打印文档的功能。
在CMainWindow类的头文件mainwindow.h中的私有区声明打印动作:
QAction* actPrint;
在头文件mainwindow.h中的private slots区声明打印槽函数:
void doPrint();
接下来,修改CMainWindow类的实现文件mainwindow.cpp,实现打印功能。
修改iniConnect()函数,添加下列代码。
actPrint = menu_T->addAction(tr("打印文档")); connect(actPrint, SIGNAL(triggered()), this, SLOT(doPrint()));
在实现文件mainwindow.cpp中添加doPrint()槽的实现,如下。
void CMainWindow::doPrint() { QTextDocument *document = textEdit->document(); QPrinter printer; QPrintDialog dlg(&printer, this); dlg.setWindowTitle(tr("打印文档")); if (dlg.exec() != QDialog::Accepted) return; document->print(&printer); }
在槽函数的最后,调用QTextDocument::print()函数,实现文档的打印。
现在编译运行应用程序,执行打印功能。如果没有打印机的话,可以在“打印文档”对话框中选择“打印到文件”,将文档打印到一个PDF文件,如图4-25所示。

图4-25 打印文档到PDF文件
然后可以打开打印的PDF文件,查看打印效果。