先看看小Demo的效果:
总结:
1、QPrinterInfo类(提供了简单的打印机的信息,比如打印机的个数、各个打印机的名字、默认打印机名字等等)
代码:
QPrinterInfo info;
QString name = info.defaultPrinterName(); // 默认打印机名字
QStringList list = info.availablePrinterNames(); // 各个打印机名字
QPrinter::DuplexMode mode = info.defaultDuplexMode();// 返回此打印机的默认双面打印模式。
enum DuplexMode {
DuplexNone = 0,
DuplexAuto,
DuplexLongSide,
DuplexShortSide
};
2、QPageSetupDialog类(打印机页面设置)
代码:
QPrinter printer;
QPageSetupDialog* setup = new QPageSetupDialog(&printer, this);
if (setup->exec() == QDialog::Accepted) {
printer.setOrientation(QPrinter::Landscape);
} else {
printer.setOrientation(QPrinter::Portrait);
}
3、QPrintDialog打印机选择类,它也可以通过点击-首选项-然后选择-页面设置,就可以包含QPageSetupDialog类
代码:
QPrinter printer;
QPrintDialog printDialog(&printer, this);
if (printDialog.exec()) {
ui->textEdit->print(&printer);
}
4、QPrintPreviewDialog打印预览类、包含以上所有类的内容。
代码:
QPrinter printer;
QPrintPreviewDialog preview(&printer, this);// 创建打印预览对话框
connect(&preview, &QPrintPreviewDialog::paintRequested, [=](QPrinter *printer) {
ui->textEdit->print(printer);
}); // 当要生成预览页面时,发射paintRequested()信号
preview.exec();