estanisgeyer
9th December 2008, 13:07
Hi friends,
I'm having some difficulties with the QPrintPreviewWidget.
I'm trying to create some reports, but in different distributions (in special, Fedora 9 and Kubuntu 8.10) preview the contents of the leaves off the page and others do not come to occupy the entire page. Sending a small sample code and images.
ReportTest.h:
#ifndef REPORTTEST_H
#define REPORTTEST_H
#include <QPrintPreviewWidget>
#include <QWidget>
#include <QPrinter>
#include <QPainter>
#include <QRect>
class ReportTest: public QWidget
{
Q_OBJECT
public:
ReportTest(QWidget *parent = 0);
QPrinter *printer;
private:
private slots:
void print(QPrinter *printer);
protected:
};
#endif
ReportTest.cpp:
#include "ReportTest.h"
ReportTest::ReportTest(QWidget *parent)
:QWidget(parent)
{
printer = new QPrinter;
printer->setOutputFormat(QPrinter::NativeFormat);
printer->setOrientation(QPrinter::Portrait);
printer->setPaperSize(QPrinter::A4);
printer->setFullPage(TRUE);
QPrintPreviewWidget *printPreview = new QPrintPreviewWidget(printer);
connect(printPreview, SIGNAL(paintRequested(QPrinter*)), this, SLOT(print(QPrinter*)));
printPreview->show();
printPreview->fitInView();
}
void ReportTest::print(QPrinter *printer)
{
QPainter painter(printer);
painter.setRenderHints(QPainter::Antialiasing |
QPainter::TextAntialiasing |
QPainter::SmoothPixmapTransform, true);
QRect rect(QPoint(30, 30), QSize(750, 30));
painter.drawRect(rect);
//printer->newPage();
}
I'm having some difficulties with the QPrintPreviewWidget.
I'm trying to create some reports, but in different distributions (in special, Fedora 9 and Kubuntu 8.10) preview the contents of the leaves off the page and others do not come to occupy the entire page. Sending a small sample code and images.
ReportTest.h:
#ifndef REPORTTEST_H
#define REPORTTEST_H
#include <QPrintPreviewWidget>
#include <QWidget>
#include <QPrinter>
#include <QPainter>
#include <QRect>
class ReportTest: public QWidget
{
Q_OBJECT
public:
ReportTest(QWidget *parent = 0);
QPrinter *printer;
private:
private slots:
void print(QPrinter *printer);
protected:
};
#endif
ReportTest.cpp:
#include "ReportTest.h"
ReportTest::ReportTest(QWidget *parent)
:QWidget(parent)
{
printer = new QPrinter;
printer->setOutputFormat(QPrinter::NativeFormat);
printer->setOrientation(QPrinter::Portrait);
printer->setPaperSize(QPrinter::A4);
printer->setFullPage(TRUE);
QPrintPreviewWidget *printPreview = new QPrintPreviewWidget(printer);
connect(printPreview, SIGNAL(paintRequested(QPrinter*)), this, SLOT(print(QPrinter*)));
printPreview->show();
printPreview->fitInView();
}
void ReportTest::print(QPrinter *printer)
{
QPainter painter(printer);
painter.setRenderHints(QPainter::Antialiasing |
QPainter::TextAntialiasing |
QPainter::SmoothPixmapTransform, true);
QRect rect(QPoint(30, 30), QSize(750, 30));
painter.drawRect(rect);
//printer->newPage();
}