1、文本打印
QPrintDialog标准对话框提供打印机的选择、配置功能,并允许改变文档有关设置,如页面范围、打印份数等。
QPrinter printer; // 新建一个QPrinter对象
QPrintDialog printDialog(&printer,this);
if(printDialog.exec()) // 判断是否点击打印按钮
{
//获得QTextEdit对象的文档
QTextDocument *doc =showWidget->text->document();
doc->print(&printer); // 打印
}
2、图像打印
在一个QPaintDevice中画图,都是创建一个QPainter对象进行画图,只是打印使用的是QPrinter,QPrinter本质上也是一个绘图设备QPaintDevice。
QPrinter printer; // 新建一个QPrinter对象
QPrintDialog printDialog(&printer,this);
if(printDialog.exec())
{
QPainter painter(&printer); // 创建一个QPainter对象,并指定绘图设备为一个QPainter对象
QRect rect =painter.viewport(); // 获得QPainter对象的视图矩形区域
QSize size = img.size(); // 获得图像的大小
/* 按照图形的比例大小重新设置视图矩形区域 */
size.scale(rect.size(),Qt::KeepAspectRatio);
painter.setViewport(rect.x(),rect.y(),size.width(),size.height());
painter.setWindow(img.rect()); // 设置QPainter窗口大小为图像的大小
painter.drawImage(0,0,img); // 打印图像
}