Qt中对打印的支持是有一个独立的printsupport模块来完成的,所以,要想在程序中使用Qt的打印功能,必须先在pro文件中添加下面这句代码:
QT += printsupport
在这个模块中,提供了八个类来支持打印功能。我们来简单的看几个与打印有直接关系的几个类:
- QPageSetupDialog:该类可以用来对打印页面进行一些相关的配置,如页面方向,边距等。
- QPrintDialog:该类就代表我们常见的打印对话框。
- QPrintPreviewDialog:该类代表打印预览对话框。可以在此对话框中看到我们对页面的设置效果。
- QPrinter:可以简单的理解为用于打印的绘图设备。
- QPrinterInfo:可以使用该类来获得当前电脑上所连接的可用的打印设备的信息。
下面,我们通过实例来实际了解一下这几个类的使用。
新建一个GUI程序,往界面上拖入一个列表框和4个按钮。效果如下:
下面,我们要完成的功能是,点击“PrinterInfo”按钮,将当前电脑可用的所有打印设备的信息加载到文本框中,然后,再将这些信息打印出来。
先来看“PrinterInfo”按钮的功能代码:
//Printer Info
void Widget::on_printerinfo_clicked()
{
QString info;
list = QPrinterInfo::availablePrinters();
for(const QPrinterInfo& printerInfo : list)
{
info = "defaultDuplexMode: ";
switch (printerInfo.defaultDuplexMode())
{
case QPrinter::DuplexNone:
info += "DuplexNone";
break;
case QPrinter::DuplexAuto:
info += "DuplexAuto";
break;
case QPrinter::DuplexLongSide:
info += "DuplexLongSide";
break;
case QPrinter::DuplexShortSide:
info += "DuplexShortSide";
break;
}
ui->listWidget->addItem(info);
info = "defaultPageSize: ";
info += printerInfo.defaultPageSize().name();
ui->listWidget->addItem(info);
info = "description: ";
info += printerInfo.description();
ui->listWidget->addItem(info);
info = "isDefault: ";
info += printerInfo.isDefault() ? "true" : "fa