Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
qpdfview.h
Go to the documentation of this file.
1// Copyright (C) 2017 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Tobias König <tobias.koenig@kdab.com>
2// Copyright (C) 2023 The Qt Company Ltd.
3// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
4
5#ifndef QPDFVIEW_H
6#define QPDFVIEW_H
7
8#include <QtPdf/qpdfdocument.h>
9#include <QtPdf/qpdflink.h>
10#include <QtPdfWidgets/qtpdfwidgetsglobal.h>
11#include <QtWidgets/qabstractscrollarea.h>
12
14
15class QPdfDocument;
17class QPdfSearchModel;
18class QPdfViewPrivate;
19
20class Q_PDF_WIDGETS_EXPORT QPdfView : public QAbstractScrollArea
21{
23
24 Q_PROPERTY(QPdfDocument* document READ document WRITE setDocument NOTIFY documentChanged)
25
26 Q_PROPERTY(PageMode pageMode READ pageMode WRITE setPageMode NOTIFY pageModeChanged)
27 Q_PROPERTY(ZoomMode zoomMode READ zoomMode WRITE setZoomMode NOTIFY zoomModeChanged)
28 Q_PROPERTY(qreal zoomFactor READ zoomFactor WRITE setZoomFactor NOTIFY zoomFactorChanged)
29
30 Q_PROPERTY(int pageSpacing READ pageSpacing WRITE setPageSpacing NOTIFY pageSpacingChanged)
31 Q_PROPERTY(QMargins documentMargins READ documentMargins WRITE setDocumentMargins NOTIFY documentMarginsChanged)
32
33 Q_PROPERTY(QPdfSearchModel* searchModel READ searchModel WRITE setSearchModel NOTIFY searchModelChanged)
34 Q_PROPERTY(int currentSearchResult READ currentSearchResult WRITE setCurrentSearchResult NOTIFY currentSearchResultChanged)
35
36public:
37 enum class PageMode
38 {
39 SinglePage,
40 MultiPage
41 };
42 Q_ENUM(PageMode)
43
44 enum class ZoomMode
45 {
46 Custom,
47 FitToWidth,
48 FitInView
49 };
50 Q_ENUM(ZoomMode)
51
52 QPdfView() : QPdfView(nullptr) {}
53 explicit QPdfView(QWidget *parent);
54 ~QPdfView();
55
56 void setDocument(QPdfDocument *document);
57 QPdfDocument *document() const;
58
59 QPdfSearchModel *searchModel() const;
60 void setSearchModel(QPdfSearchModel *searchModel);
61
62 int currentSearchResult() const;
63
64 QPdfPageNavigator *pageNavigator() const;
65
66 PageMode pageMode() const;
67 ZoomMode zoomMode() const;
68 qreal zoomFactor() const;
69
70 int pageSpacing() const;
71 void setPageSpacing(int spacing);
72
73 QMargins documentMargins() const;
74 void setDocumentMargins(QMargins margins);
75
76public Q_SLOTS:
77 void setPageMode(QPdfView::PageMode mode);
78 void setZoomMode(QPdfView::ZoomMode mode);
79 void setZoomFactor(qreal factor);
80 void setCurrentSearchResult(int currentResult);
81
86 void zoomFactorChanged(qreal zoomFactor);
87 void pageSpacingChanged(int pageSpacing);
88 void documentMarginsChanged(QMargins documentMargins);
90 void currentSearchResultChanged(int currentResult);
91
92protected:
93 void paintEvent(QPaintEvent *event) override;
94 void resizeEvent(QResizeEvent *event) override;
95 void scrollContentsBy(int dx, int dy) override;
96 void mousePressEvent(QMouseEvent *event) override;
97 void mouseMoveEvent(QMouseEvent *event) override;
98 void mouseReleaseEvent(QMouseEvent *event) override;
99
100private:
101 Q_DECLARE_PRIVATE(QPdfView)
103};
104
106
107#endif // QPDFVIEW_H
\inmodule QtCore
Definition qmargins.h:23
\inmodule QtGui
Definition qevent.h:195
The QPaintEvent class contains event parameters for paint events.
Definition qevent.h:485
The QPdfDocument class loads a PDF document and renders pages from it.
Navigation history within a PDF document.
The QPdfSearchModel class searches for a string in a PDF document and holds the results.
\inmodule QtPdf
Definition qpdfview.h:21
ZoomMode
This enum describes the magnification behavior of the PDF viewer:
Definition qpdfview.h:45
void documentMarginsChanged(QMargins documentMargins)
void zoomModeChanged(QPdfView::ZoomMode zoomMode)
void pageSpacingChanged(int pageSpacing)
void pageModeChanged(QPdfView::PageMode pageMode)
void zoomFactorChanged(qreal zoomFactor)
void currentSearchResultChanged(int currentResult)
void searchModelChanged(QPdfSearchModel *searchModel)
PageMode
This enum describes the overall behavior of the PDF viewer:
Definition qpdfview.h:38
void documentChanged(QPdfDocument *document)
The QResizeEvent class contains event parameters for resize events.
Definition qevent.h:547
\inmodule QtCore
The QWidget class is the base class of all user interface objects.
Definition qwidget.h:99
qreal spacing
Combined button and popup list for selecting options.
GLenum mode
struct _cl_event * event
#define Q_ENUM(x)
#define Q_PROPERTY(...)
#define Q_OBJECT
#define Q_SLOTS
#define Q_SIGNALS
#define Q_PDF_WIDGETS_EXPORT
double qreal
Definition qtypes.h:92
IUIAutomationTreeWalker __RPC__deref_out_opt IUIAutomationElement ** parent