写记事本打印功能所遇问题,记录以便于查阅。
在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); }
参考: