Sur cette page

QPdfPageNavigator Class

Historique de la navigation dans un document PDF. Plus d'informations...

Header: #include <QPdfPageNavigator>
Since: Qt 6.4
Inherits: QObject

Propriétés

Fonctions publiques

QPdfPageNavigator(QObject *parent)
virtual ~QPdfPageNavigator() override
bool backAvailable() const
QPointF currentLocation() const
int currentPage() const
qreal currentZoom() const
bool forwardAvailable() const

Emplacements publics

void back()
void clear()
void forward()
void jump(QPdfLink destination)
void jump(int page, const QPointF &location, qreal zoom = 0)
void update(int page, const QPointF &location, qreal zoom)

Signaux

void backAvailableChanged(bool available)
void currentLocationChanged(QPointF location)
void currentPageChanged(int page)
void currentZoomChanged(qreal zoom)
void forwardAvailableChanged(bool available)
void jumped(QPdfLink current)

Description détaillée

La classe QPdfPageNavigator se souvient des destinations que l'utilisateur a visitées dans un document PDF et offre la possibilité de naviguer en avant et en arrière. Elle est utilisée pour mettre en œuvre des actions de retour et d'avance similaires aux boutons de retour et d'avance d'un navigateur web.

Voir également QPdfDocument.

Documentation sur les propriétés

[read-only] backAvailable : bool

Tient true si une destination de retour est disponible dans l'historique : c'est-à-dire si push() ou forward() a été appelé.

Fonctions d'accès :

bool backAvailable() const

Signal de notification :

void backAvailableChanged(bool available)

[read-only] currentLocation : QPointF

Cette propriété indique l'emplacement actuel sur la page en cours d'affichage (le dernier emplacement indiqué à jump() ou update()). La valeur par défaut est 0, 0.

Fonctions d'accès :

QPointF currentLocation() const

Signal de notification :

void currentLocationChanged(QPointF location)

[read-only] currentPage : int

Cette propriété contient la page en cours d'affichage. La valeur par défaut est 0.

Fonctions d'accès :

int currentPage() const

Signal de notification :

void currentPageChanged(int page)

[read-only] currentZoom : qreal

Cette propriété contient l'échelle d'agrandissement (1 pixel logique = 1 point) de la page visualisée. La valeur par défaut est 1.

Fonctions d'accès :

qreal currentZoom() const

Signal de notification :

void currentZoomChanged(qreal zoom)

[read-only] forwardAvailable : bool

Maintient true si une destination de transfert est disponible dans l'historique : c'est-à-dire si back() a été appelé précédemment.

Fonctions d'accès :

bool forwardAvailable() const

Signal du notificateur :

void forwardAvailableChanged(bool available)

Fonction membre Documentation

[explicit] QPdfPageNavigator::QPdfPageNavigator(QObject *parent)

Construit une pile de navigation de page avec l'objet parent parent.

[override virtual noexcept] QPdfPageNavigator::~QPdfPageNavigator()

Détruit la pile de navigation de la page.

[slot] void QPdfPageNavigator::back()

Ouvre la pile, met à jour les propriétés currentPage, currentLocation et currentZoom en fonction de la destination la plus récemment consultée, puis émet le signal jumped().

[slot] void QPdfPageNavigator::clear()

Effacer l'historique et rétablir les valeurs par défaut de currentPage, currentLocation et currentZoom.

[slot] void QPdfPageNavigator::forward()

Retourne à la page, à l'emplacement et au niveau de zoom qui étaient affichés avant l'appel de back(), puis émet le signal jumped().

Si une nouvelle destination a été poussée depuis le dernier appel à back(), la fonction forward() ne fait rien, parce qu'il y a un embranchement dans la ligne temporelle qui fait perdre le "futur".

[slot] void QPdfPageNavigator::jump(QPdfLink destination)

Ajoute le site destination à l'historique des sites visités.

Dans ce cas, les vues PDF répondent au signal jumped en défilant pour placer destination.rectangles dans la fenêtre de visualisation, au lieu de placer destination.location dans la fenêtre de visualisation. Il est donc approprié d'appeler cette méthode pour accéder à un résultat de recherche à partir de QPdfSearchModel (car les rectangles couvrent la région de texte trouvée). Pour passer à la destination d'un hyperlien, il faut plutôt appeler jump(page, location, zoom), car dans ce cas, les rectangles de l'objet QPdfLink couvrent l'emplacement d'origine de l'hyperlien plutôt que la destination.

Note : Ce slot est surchargé. Pour se connecter à ce slot :

// Connect using qOverload:
connect(sender, &SenderClass::signal,
        pdfPageNavigator, qOverload(&QPdfPageNavigator::jump));

// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
        pdfPageNavigator, [receiver = pdfPageNavigator](QPdfLink destination) { receiver->jump(destination); });
Pour plus d'exemples et d'approches, voir se connecter à des slots surchargés.

[slot] void QPdfPageNavigator::jump(int page, const QPointF &location, qreal zoom = 0)

Ajoute la destination donnée, composée de page, location, et zoom, à l'historique des lieux visités.

L'argument zoom représente l'agrandissement (où 1 est l'échelle par défaut, 1 pixel logique = 1 point). Si zoom n'est pas donné ou est 0, currentZoom conserve sa valeur existante et currentZoomChanged n'est pas émis.

location doit être identique à QPdfLink::location() si l'utilisateur suit un lien ; et puisque celui-ci est spécifié comme étant le coin supérieur gauche de la destination, il est préférable, pour des raisons de cohérence, de toujours utiliser l'emplacement visible dans le coin supérieur gauche de la fenêtre de visualisation, en points.

Si forwardAvailable est true, l'appel à cette fonction représente un embranchement dans la ligne temporelle qui fait perdre le "futur", et donc forwardAvailable se transformera en false.

Note : Ce slot est surchargé. Pour se connecter à ce slot :

// Connect using qOverload:
connect(sender, &SenderClass::signal,
        pdfPageNavigator, qOverload(&QPdfPageNavigator::jump));

// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
        pdfPageNavigator, [receiver = pdfPageNavigator](int page, const QPointF &location, qreal zoom) { receiver->jump(page, location, zoom); });
Pour plus d'exemples et d'approches, voir se connecter aux slots surchargés.

[signal] void QPdfPageNavigator::jumped(QPdfLink current)

Ce signal est émis lorsqu'un saut brusque se produit, à l'index de la page current, à l'emplacement sur la page et au niveau de zoom, mais pas lorsqu'on fait simplement défiler le document une page à la fois. Autrement dit, jump(), forward() et back() émettent ce signal, mais pas update().

Si current.rectangles.length > 0, il s'agit de rectangles qui couvrent une zone de destination spécifique : un résultat de recherche qui doit être rendu visible ; sinon, current.location est l'emplacement de destination sur le site page (destination d'un hyperlien, ou lors d'une navigation avant/arrière).

[slot] void QPdfPageNavigator::update(int page, const QPointF &location, qreal zoom)

Modifie la destination actuelle, composée de page, location et zoom.

Cette fonction peut être appelée périodiquement lorsque l'utilisateur se déplace manuellement dans le document, de sorte qu'après l'appel de back(), forward() reviendra à la destination la plus récemment affichée plutôt qu'à celle qui a été spécifiée en dernier lieu par push().

Les signaux currentZoomChanged, currentPageChanged et currentLocationChanged seront émis si les propriétés respectives sont effectivement modifiées. Le signal jumped n'est pas émis, car cette opération représente un mouvement fluide plutôt qu'un saut de navigation.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.