printimage.h
#ifndef PRINTIMAGE_H
#define PRINTIMAGE_H
#include <QtGui>
#include <QImage>
class PrintImage : public QMainWindow
{
Q_OBJECT
public:
PrintImage(QWidget *parent = 0, Qt::WFlags flags = 0);
~PrintImage();
void createActions();
void createMenus();
void createToolBars();
public slots:
void sl_print();
private:
QLabel *labImage;
QImage image;
QAction *printAction;
QMenu *fileMenu;
QToolBar *fileToolBar;
};
#endif // PRINTIMAGE_H
printimage.cpp
#include "printimage.h"
PrintImage::PrintImage(QWidget *parent, Qt::WFlags flags)
: QMainWindow(parent, flags)
setWindowTitle(tr("PrintImage"));
labImage = new QLabel(this);
labImage->setSizePolicy(QSizePolicy::Ignored,QSizePolicy::Ignored);
labImage->setScaledContents(true);
setCentralWidget(labImage);
createActions();
createMenus();
createToolBars();
if(image.load("tux.png"))
{
labImage->setPixmap(QPixmap::fromImage(image));
resize(image.width(),image.height());
}
}
PrintImage::~PrintImage()
void PrintImage::createActions()
printAction = new QAction(QIcon("images/print.png"),tr("Print"),this);
printAction->setShortcut(tr("Ctrl+P"));
printAction->setStatusTip(tr("Print Image"));
connect(printAction,SIGNAL(triggered()),this,SLOT(sl_print()));
void PrintImage::createMenus()
fileMenu = menuBar()->addMenu(tr("File"));
fileMenu->addAction(printAction);
void PrintImage::createToolBars()
fileToolBar = addToolBar("File");
fileToolBar->addAction(printAction);
void PrintImage::sl_print()
QPrinter printer;
QPrintDialog printDlg(&printer,this);
if(printDlg.exec())
QPainter painter(&printer);
QRect rect = painter.viewport();
QSize size = image.size();
size.scale(rect.size(),Qt::KeepAspectRatio);
painter.setViewport(rect.x(),rect.y(),size.width(),size.height());
painter.setWindow(image.rect());
painter.drawImage(0,0,image);
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。
本文轉自韓兆新部落格部落格園部落格,原文連結:http://www.cnblogs.com/hanzhaoxin/archive/2012/11/24/2786453.html,如需轉載請自行聯系原作者