文本打印
文本打印要调出文本打印框,这时要使用QPrintDialog
QPrintDialog要将QPrinter类的一个对象作为参数,打印文本时调用print函数也要将QPrinter类的对象作为参数,所以要先声明一个QPrinter对象
#include<QPrintDialog>
#include<QPrinter>
QPrinter printer;//printer对象可以获得打印属性
QPrintDialog printDialog(&printer,this);
if(printDialog.exec())//判断用户是否点击的打印
{
QTextDocument *doc=showWidget->text->document();
doc->print(&printer);
}
Qt5中QPrinter,QPrinterDialog等类都在printsupport模块中。所以要加入QT+=printsupport
打印图像实际上是在QPaintDevice中画图,与QWidget、QPixmap和QImage中画图相同,都是创建一个QPainter对象进行画图,只是打印时使用QPrinter
QPrinter printer;
QPrintDialog printDialog(&printer,this);
if(printDialog.exec())
{
QPainter painter(&printer);//指定绘图设备为一个QPrinter对象
QRect rect=painter.viewport();
QSize size=imag.size();
size.size(rect.size(),Qt::KeepAspectRatio);
painter.setViewport(rect.x(),rect.y(),size.width(),size.heigh());
painter.serWindow(img.rect());
painter.drawImag(0,0,img);
}