Qt: 加入打印支持

写记事本打印功能所遇问题,记录以便于查阅。

在vs系统中开发Qt,加入打印支持,不似在QtCreator之pro文件中中加QT +=printsupport解决。

而要在vs(以vs2015为例)中,则须在Qt vs Tools->Qt Project Settings->Qt Modules里,勾选Print Support即可用

#include <qprinter.h>
#include <qprintdialog.h>
#include <qpagesetupdialog.h>

等包含。如下图示:

 

页面设置:

void NotePad::slotPageSetup()
{
    QPrinter printer;
    QPageSetupDialog pageSetUpdlg(&printer, this);
    if (pageSetUpdlg.exec() == QDialog::Accepted)
        printer.setOrientation(QPrinter::Landscape);
    else
        printer.setOrientation(QPrinter::Portrait);
}

打印:

void NotePad::slotPrint()
{
    QPrinter printer;
    QString printerName = printer.printerName();
    if (printerName.size() == 0)
        return;

    QPrintDialog dlg(&printer, this);
    if (ui.textEdit->textCursor().hasSelection())
        dlg.addEnabledOption(QAbstractPrintDialog::PrintSelection);
    // 如果在对话框中按下了打印按钮,则执行打印操作
    if (dlg.exec() == QDialog::Accepted)
        ui.textEdit->print(&printer);
}

参考:

https://www.cnblogs.com/findumars/p/6152822.html

原文地址:https://www.cnblogs.com/crwy/p/8759908.html