QPrintPreviewWidget Class

The QPrintPreviewWidget class provides a widget for previewing page layouts for printer output. More...

Header: #include <QPrintPreviewWidget>
qmake: QT += printsupport
Since: Qt 4.4
Inherits: QWidget

This class was introduced in Qt 4.4.

Public Types

enum ViewMode { SinglePageView, FacingPagesView, AllPagesView }
enum ZoomMode { CustomZoom, FitToWidth, FitInView }

Public Functions

QPrintPreviewWidget(QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags())
QPrintPreviewWidget(QPrinter *printer, QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags())
virtual ~QPrintPreviewWidget()
int currentPage() const
QPrinter::Orientation orientation() const
int pageCount() const
ViewMode viewMode() const
qreal zoomFactor() const
ZoomMode zoomMode() const

Reimplemented Public Functions

virtual void setVisible(bool visible) override

Public Slots

void fitInView()
void fitToWidth()
void print()
void setAllPagesViewMode()
void setCurrentPage(int page)
void setFacingPagesViewMode()
void setLandscapeOrientation()
void setOrientation(QPrinter::Orientation orientation)
void setPortraitOrientation()
void setSinglePageViewMode()
void setViewMode(ViewMode mode)
void setZoomFactor(qreal factor)
void setZoomMode(ZoomMode zoomMode)
void updatePreview()
void zoomIn(qreal factor = 1.1)
void zoomOut(qreal factor = 1.1)

Signals

void paintRequested(QPrinter *printer)
void previewChanged()

Detailed Description

QPrintPreviewDialog uses a QPrintPreviewWidget internally, and the purpose of QPrintPreviewWidget is to make it possible to embed the preview into other widgets. It also makes it possible to build a different user interface around it than the default one provided with QPrintPreviewDialog.

Using QPrintPreviewWidget is straightforward:

  1. Create the QPrintPreviewWidget

    Construct the QPrintPreviewWidget either by passing in an existing QPrinter object, or have QPrintPreviewWidget create a default constructed QPrinter object for you.

  2. Connect the paintRequested() signal to a slot.

    When the widget needs to generate a set of preview pages, a paintRequested() signal will be emitted from the widget. Connect a slot to this signal, and draw onto the QPrinter passed in as a signal parameter. Call QPrinter::newPage(), to start a new page in the preview.

See also QPrinter, QPrintDialog, QPageSetupDialog, and QPrintPreviewDialog.

Member Type Documentation

enum QPrintPreviewWidget::ViewMode

This enum is used to describe the view mode of the preview widget.

ConstantValueDescription
QPrintPreviewWidget::SinglePageView0A mode where single pages in the preview is viewed.
QPrintPreviewWidget::FacingPagesView1A mode where the facing pages in the preview is viewed.
QPrintPreviewWidget::AllPagesView2A view mode where all the pages in the preview is viewed.

enum QPrintPreviewWidget::ZoomMode

This enum is used to describe zoom mode of the preview widget.

ConstantValueDescription
QPrintPreviewWidget::CustomZoom0The zoom is set to a custom zoom value.
QPrintPreviewWidget::FitToWidth1This mode fits the current page to the width of the view.
QPrintPreviewWidget::FitInView2This mode fits the current page inside the view.

Member Function Documentation

QPrintPreviewWidget::QPrintPreviewWidget(QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags())

This is an overloaded function.

This will cause QPrintPreviewWidget to create an internal, default constructed QPrinter object, which will be used to generate the preview.

QPrintPreviewWidget::QPrintPreviewWidget(QPrinter *printer, QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags())

Constructs a QPrintPreviewWidget based on printer and with parent as the parent widget. The widget flags flags are passed on to the QWidget constructor.

See also QWidget::setWindowFlags().

[slot] void QPrintPreviewWidget::fitInView()

This is a convenience function and is the same as calling setZoomMode(QPrintPreviewWidget::FitInView).

[slot] void QPrintPreviewWidget::fitToWidth()

This is a convenience function and is the same as calling setZoomMode(QPrintPreviewWidget::FitToWidth).

[signal] void QPrintPreviewWidget::paintRequested(QPrinter *printer)

This signal is emitted when the preview widget needs to generate a set of preview pages. printer is the printer associated with this preview widget.

[signal] void QPrintPreviewWidget::previewChanged()

This signal is emitted whenever the preview widget has changed some internal state, such as the orientation.

[slot] void QPrintPreviewWidget::print()

Prints the preview to the printer associated with the preview.

[slot] void QPrintPreviewWidget::setAllPagesViewMode()

This is a convenience function and is the same as calling setViewMode(QPrintPreviewWidget::AllPagesView).

[slot] void QPrintPreviewWidget::setCurrentPage(int page)

Sets the current page in the preview. This will cause the view to skip to the beginning of page.

See also currentPage().

[slot] void QPrintPreviewWidget::setFacingPagesViewMode()

This is a convenience function and is the same as calling setViewMode(QPrintPreviewWidget::FacingPagesView).

[slot] void QPrintPreviewWidget::setLandscapeOrientation()

This is a convenience function and is the same as calling setOrientation(QPrinter::Landscape).

[slot] void QPrintPreviewWidget::setOrientation(QPrinter::Orientation orientation)

Sets the current orientation to orientation. This value will be set on the QPrinter object associated with the preview.

See also orientation().

[slot] void QPrintPreviewWidget::setPortraitOrientation()

This is a convenience function and is the same as calling setOrientation(QPrinter::Portrait).

[slot] void QPrintPreviewWidget::setSinglePageViewMode()

This is a convenience function and is the same as calling setViewMode(QPrintPreviewWidget::SinglePageView).

[slot] void QPrintPreviewWidget::setViewMode(ViewMode mode)

Sets the view mode to mode. The default view mode is SinglePageView.

See also viewMode().

[slot] void QPrintPreviewWidget::setZoomFactor(qreal factor)

Sets the zoom factor of the view to factor. For example, a value of 1.0 indicates an unscaled view, which is approximately the size the view will have on paper. A value of 0.5 will halve the size of the view, while a value of 2.0 will double the size of the view.

See also zoomFactor().

[slot] void QPrintPreviewWidget::setZoomMode(ZoomMode zoomMode)

Sets the zoom mode to zoomMode. The default zoom mode is FitInView.

See also zoomMode(), viewMode(), and setViewMode().

[slot] void QPrintPreviewWidget::updatePreview()

This function updates the preview, which causes the paintRequested() signal to be emitted.

[slot] void QPrintPreviewWidget::zoomIn(qreal factor = 1.1)

Zooms the current view in by factor. The default value for factor is 1.1, which means the view will be scaled up by 10%.

[slot] void QPrintPreviewWidget::zoomOut(qreal factor = 1.1)

Zooms the current view out by factor. The default value for factor is 1.1, which means the view will be scaled down by 10%.

[virtual] QPrintPreviewWidget::~QPrintPreviewWidget()

Destroys the QPrintPreviewWidget.

int QPrintPreviewWidget::currentPage() const

Returns the currently viewed page in the preview.

See also setCurrentPage().

QPrinter::Orientation QPrintPreviewWidget::orientation() const

Returns the current orientation of the preview. This value is obtained from the QPrinter object associated with the preview.

See also setOrientation().

int QPrintPreviewWidget::pageCount() const

Returns the number of pages in the preview.

This function was introduced in Qt 4.6.

[override virtual] void QPrintPreviewWidget::setVisible(bool visible)

ViewMode QPrintPreviewWidget::viewMode() const

Returns the current view mode. The default view mode is SinglePageView.

See also setViewMode().

qreal QPrintPreviewWidget::zoomFactor() const

Returns the zoom factor of the view.

See also setZoomFactor().

ZoomMode QPrintPreviewWidget::zoomMode() const

Returns the current zoom mode.

See also setZoomMode(), viewMode(), and setViewMode().