您现在的位置是:网站首页> C/C++
浅谈QT打印功能实现
- C/C++
- 2021-11-11
- 902人已阅读
摘要
QT作为一款轻量级的集成开发环境,其设计的目标是使开发人员利用QT这个应用程序框架更加快速及轻易的开发应用程序。要达到此目的,要求QT必须能够跨平台,QT能够在32位及64位的Linux,MAC OS X以及Windows上运行。
现在我们想在项目中加入一项打印功能,即使在不同的操作系统环境下,仍然能有相同的用户体验,在实现中发现QT对打印的支持不是那么友好。我们希望在跨平台的情况下,能打印各种文档,比如用户的简历,发现如果不调用对应操作系统的内核外壳打印函数,这项工作变得异常艰难。我们希望用QT自带的函数库,来实现简单的打印功能,这样就实现了一次编码,多环境使用的目的。
下面我们分别介绍这两种方法。
一、调用内核外壳打印函数
Linux下面相对比较容易,使用lpr –p [printer] [fileName]即可,即如果想把file.cpp文件送到打印机pl则使用lpr –p pl file.cpp即可。
Windows下,我们实现打印既定文件路径的文档时,我们调用windows内核命令执行函数,实现打印功能。具体代码如下:
二、使用QT自定义的类和函数实现打印文件的功能
QT中和打印文件相关的类如下所示,它们分别是:
- 抽象文档打印对话框类,提供配置打印机的打印对话框基本实现;
- 页面设置对话框类,和打印页面相关参数的配置对话框;
- 打印对话框类,指定打印机配置的对话框;
- 打印引擎类,定义了QPrinter类如何与打印子系统交互的接口;
- 打印预览对话框类,用来预览和配置页面布局的对话框;
- 打印预览控件类,预览页面布局的控件;
- 打印机类,指示打印机如何工作。
QT中实现打印的方法
在QT中如果想实现打印,首先,我们需要构造一个打印机类(QPrinter)对象, 其次,使用此对象构造一个打印对话框类(QprinterDialog)对象。如下所示:
最后附上在项目中,我们如何利用QT自身类,来实现这个跨平台的打印功能。
首先,在头文件中指定槽函数:
以上,仅为摸索QT的一点心得,供大家共同交流实践,不足之处欢迎大家指出。