QClipboard Class
La classe QClipboard permet d'accéder au presse-papier du système de fenêtres. Plus d'informations...
| En-tête : | #include <QClipboard> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Gui)target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake : | QT += gui |
| Héritages : | QObject |
Types publics
| enum | Mode { Clipboard, Selection, FindBuffer } |
Fonctions publiques
| void | clear(QClipboard::Mode mode = Clipboard) |
| QImage | image(QClipboard::Mode mode = Clipboard) const |
| const QMimeData * | mimeData(QClipboard::Mode mode = Clipboard) const |
| bool | ownsClipboard() const |
| bool | ownsFindBuffer() const |
| bool | ownsSelection() const |
| QPixmap | pixmap(QClipboard::Mode mode = Clipboard) const |
| void | setImage(const QImage &image, QClipboard::Mode mode = Clipboard) |
| void | setMimeData(QMimeData *src, QClipboard::Mode mode = Clipboard) |
| void | setPixmap(const QPixmap &pixmap, QClipboard::Mode mode = Clipboard) |
| void | setText(const QString &text, QClipboard::Mode mode = Clipboard) |
| bool | supportsFindBuffer() const |
| bool | supportsSelection() const |
| QString | text(QClipboard::Mode mode = Clipboard) const |
| QString | text(QString &subtype, QClipboard::Mode mode = Clipboard) const |
Signaux
| void | changed(QClipboard::Mode mode) |
| void | dataChanged() |
| void | findBufferChanged() |
| void | selectionChanged() |
Description détaillée
Le presse-papiers offre un mécanisme simple pour copier et coller des données entre applications.
QClipboard supporte les mêmes types de données que QDrag et utilise des mécanismes similaires. Pour une utilisation avancée du presse-papiers, lisez Drag and Drop.
Il existe un seul objet QClipboard dans une application, accessible par QGuiApplication::clipboard().
Exemple :
QClipboard *clipboard = QGuiApplication::clipboard(); QString originalText = clipboard->text(); // etc. clipboard->setText(newText);
QClipboard comporte quelques fonctions de commodité pour accéder à des types de données communs : setText() permet l'échange de texte Unicode et setPixmap() et setImage() permet l'échange de QPixmaps et QImages entre les applications. La fonction setMimeData() est le summum de la flexibilité : elle vous permet d'ajouter n'importe quelle QMimeData dans le presse-papiers. Il y a des getters correspondants pour chacun d'entre eux, par exemple text(), image() et pixmap(). Vous pouvez vider le presse-papiers en appelant clear().
Voici un exemple typique de l'utilisation de ces fonctions :
void DropArea::paste() { const QClipboard *clipboard = QGuiApplication::clipboard(); const QMimeData *mimeData = clipboard->mimeData(); if (mimeData->hasImage()) { setPixmap(qvariant_cast<QPixmap>(mimeData->imageData())); } else if (mimeData->hasHtml()) { setText(mimeData->html()); setTextFormat(Qt::RichText); } else if (mimeData->hasText()) { setText(mimeData->text()); setTextFormat(Qt::PlainText); } else { setText(tr("Cannot display data")); } }
Notes pour les utilisateurs de X11
- Le système de fenêtrage X11 utilise le concept de sélection et de presse-papiers séparés. Lorsqu'un texte est sélectionné, il est immédiatement disponible en tant que sélection globale de la souris. La sélection globale de la souris peut ensuite être copiée dans le presse-papiers. Par convention, le bouton du milieu de la souris est utilisé pour coller la sélection globale de la souris.
- X11 possède également le concept de propriété ; si vous modifiez la sélection dans une fenêtre, X11 ne notifiera le changement qu'au propriétaire et au propriétaire précédent, c'est-à-dire qu'il ne notifiera pas à toutes les applications que la sélection ou les données du presse-papiers ont été modifiées.
- Enfin, le presse-papiers de X11 est piloté par des événements, c'est-à-dire que le presse-papiers ne fonctionnera pas correctement si la boucle d'événements n'est pas en cours d'exécution. De même, il est recommandé que le contenu du presse-papiers soit stocké ou récupéré en réponse directe aux événements d'entrée de l'utilisateur, par exemple les pressions et relâchements des boutons de la souris ou des touches. Le contenu du presse-papiers ne doit pas être stocké ou récupéré en réponse à une minuterie ou à des événements non liés à l'utilisateur.
- Comme il n'existe pas de méthode standard pour copier et coller des fichiers entre applications sous X11, divers types MIME et conventions sont actuellement utilisés. Par exemple, Nautilus s'attend à ce que les fichiers soient fournis avec un type MIME
x-special/gnome-copied-filesavec des données commençant par l'action couper/copier, un caractère de retour à la ligne et l'URL du fichier.
Notes pour les utilisateurs de macOS
macOS prend en charge un tampon de recherche séparé qui contient la chaîne de recherche actuelle dans les opérations de recherche. Il est possible d'accéder à ce presse-papiers de recherche en spécifiant le mode FindBuffer.
Notes pour les utilisateurs de Windows et macOS
- Windows et macOS ne prennent pas en charge la sélection globale par la souris ; ils ne prennent en charge que le presse-papiers global, c'est-à-dire qu'ils n'ajoutent du texte au presse-papiers que lorsqu'une copie ou une coupure explicite est effectuée.
- Windows et macOS n'ont pas le concept de propriété ; le presse-papiers est une ressource globale et toutes les applications sont informées des changements.
Notes pour les utilisateurs d'Android
Sur Android, seuls les types mime suivants sont pris en charge : text/plain, text/html et text/uri-list.
Voir également QGuiApplication.
Documentation sur les types de membres
enum QClipboard::Mode
Ce type d'énumération est utilisé pour contrôler quelle partie du presse-papiers du système est utilisée par QClipboard::mimeData(), QClipboard::setMimeData() et les fonctions connexes.
| Constante | Valeur | Description |
|---|---|---|
QClipboard::Clipboard | 0 | indique que les données doivent être stockées et récupérées dans le presse-papiers global. |
QClipboard::Selection | 1 | indique que les données doivent être stockées et récupérées à partir de la sélection globale de la souris. La prise en charge de Selection n'est assurée que sur les systèmes disposant d'une sélection globale de la souris (par exemple, X11). |
QClipboard::FindBuffer | 2 | indique que les données doivent être stockées et extraites du tampon de recherche. Ce mode est utilisé pour conserver les chaînes de recherche sous macOS. |
Voir également QClipboard::supportsSelection().
Documentation des fonctions membres
[signal] void QClipboard::changed(QClipboard::Mode mode)
Ce signal est émis lorsque les données du presse-papiers mode sont modifiées.
Voir aussi dataChanged(), selectionChanged() et findBufferChanged().
void QClipboard::clear(QClipboard::Mode mode = Clipboard)
Efface le contenu du presse-papiers.
L'argument mode est utilisé pour contrôler la partie du presse-papiers du système qui est utilisée. Si mode est QClipboard::Clipboard, cette fonction efface le contenu global du presse-papiers. Si mode est QClipboard::Selection, cette fonction efface le contenu de la sélection globale de la souris. Si mode est QClipboard::FindBuffer, cette fonction efface la mémoire tampon de la chaîne de recherche.
Voir aussi QClipboard::Mode et supportsSelection().
[signal] void QClipboard::dataChanged()
Ce signal est émis lorsque les données du presse-papiers sont modifiées.
Sur macOS et avec Qt version 4.3 ou supérieure, les modifications du presse-papiers effectuées par d'autres applications ne seront détectées que lorsque l'application est activée.
Voir aussi findBufferChanged(), selectionChanged() et changed().
[signal] void QClipboard::findBufferChanged()
Ce signal est émis lorsque le tampon de recherche est modifié. Ceci ne s'applique qu'à macOS.
Avec la version 4.3 ou supérieure de Qt, les modifications du presse-papiers effectuées par d'autres applications ne seront détectées que lorsque l'application est activée.
Voir aussi dataChanged(), selectionChanged(), et changed().
QImage QClipboard::image(QClipboard::Mode mode = Clipboard) const
Renvoie l'image du presse-papiers, ou une image nulle si le presse-papiers ne contient pas d'image ou s'il contient une image dans un format non supporté.
L'argument mode est utilisé pour contrôler quelle partie du presse-papiers système est utilisée. Si mode est QClipboard::Clipboard, l'image est récupérée dans le presse-papiers global. Si mode est QClipboard::Selection, l'image est récupérée à partir de la sélection globale de la souris.
Voir aussi setImage(), pixmap(), mimeData() et QImage::isNull().
const QMimeData *QClipboard::mimeData(QClipboard::Mode mode = Clipboard) const
Renvoie un pointeur vers une représentation QMimeData des données actuelles du presse-papiers (peut être nullptr si le mode donné n'est pas pris en charge par la plate-forme).
L'argument mode est utilisé pour contrôler quelle partie du presse-papiers du système est utilisée. Si mode est QClipboard::Clipboard, les données sont extraites du presse-papiers global. Si mode est QClipboard::Selection, les données sont extraites de la sélection globale de la souris. Si mode est QClipboard::FindBuffer, les données sont extraites de la mémoire tampon de la chaîne de recherche.
Les fonctions text(), image() et pixmap() sont des enveloppes plus simples pour récupérer des données de texte, d'image et de pixmap.
Remarque : le pointeur renvoyé peut être invalidé lorsque le contenu du presse-papiers est modifié, soit par l'appel à l'une des fonctions de définition, soit de manière externe par la modification du presse-papiers par le système.
Voir aussi setMimeData().
bool QClipboard::ownsClipboard() const
Renvoie true si cet objet presse-papiers possède les données du presse-papiers ; sinon, renvoie false.
bool QClipboard::ownsFindBuffer() const
Renvoie true si cet objet presse-papiers possède les données du tampon de recherche ; sinon, renvoie false.
bool QClipboard::ownsSelection() const
Renvoie true si l'objet presse-papiers possède les données de sélection de la souris ; sinon, renvoie false.
QPixmap QClipboard::pixmap(QClipboard::Mode mode = Clipboard) const
Renvoie la pixmap du presse-papiers, ou null si le presse-papiers ne contient pas de pixmap. Notez que cela peut entraîner une perte d'informations. Par exemple, si l'image est en 24 bits et que l'affichage est en 8 bits, le résultat est converti en 8 bits, et si l'image a un canal alpha, le résultat n'a qu'un masque.
L'argument mode est utilisé pour contrôler la partie du presse-papiers du système qui est utilisée. Si mode est QClipboard::Clipboard, la pixmap est récupérée dans le presse-papiers global. Si mode est QClipboard::Selection, la pixmap est récupérée à partir de la sélection globale de la souris.
Voir aussi setPixmap(), image(), mimeData() et QPixmap::convertFromImage().
[signal] void QClipboard::selectionChanged()
Ce signal est émis lorsque la sélection est modifiée. Ceci ne s'applique qu'aux systèmes de fenêtrage qui supportent les sélections, par exemple X11. Windows et macOS ne supportent pas les sélections.
Voir aussi dataChanged(), findBufferChanged(), et changed().
void QClipboard::setImage(const QImage &image, QClipboard::Mode mode = Clipboard)
Copie le site image dans le presse-papiers.
L'argument mode est utilisé pour contrôler la partie du presse-papiers du système qui est utilisée. Si mode est QClipboard::Clipboard, l'image est stockée dans le presse-papiers global. Si mode est QClipboard::Selection, les données sont stockées dans la sélection globale de la souris.
Il s'agit d'une abréviation de :
Voir aussi image(), setPixmap() et setMimeData().
void QClipboard::setMimeData(QMimeData *src, QClipboard::Mode mode = Clipboard)
Définit les données du presse-papiers à src. La propriété des données est transférée dans le presse-papiers. Si vous souhaitez supprimer les données, appelez clear() ou appelez setMimeData() à nouveau avec de nouvelles données.
L'argument mode est utilisé pour contrôler la partie du presse-papiers du système qui est utilisée. Si mode est QClipboard::Clipboard, les données sont stockées dans le presse-papiers global. Si mode est QClipboard::Selection, les données sont stockées dans la sélection globale de la souris. Si mode est QClipboard::FindBuffer, les données sont stockées dans le tampon de la chaîne de recherche.
Les fonctions setText(), setImage() et setPixmap() sont des enveloppes plus simples pour définir respectivement les données de texte, d'image et de pixmap.
Voir également mimeData().
void QClipboard::setPixmap(const QPixmap &pixmap, QClipboard::Mode mode = Clipboard)
Copie pixmap dans le presse-papiers. Notez que cette opération est plus lente que setImage() car il faut d'abord convertir le QPixmap en QImage.
L'argument mode est utilisé pour contrôler quelle partie du presse-papiers du système est utilisée. Si mode est QClipboard::Clipboard, la pixmap est stockée dans le presse-papiers global. Si mode est QClipboard::Selection, la pixmap est stockée dans la sélection globale de la souris.
Voir aussi pixmap(), setImage() et setMimeData().
void QClipboard::setText(const QString &text, QClipboard::Mode mode = Clipboard)
Copie text dans le presse-papiers sous forme de texte brut.
L'argument mode est utilisé pour contrôler la partie du presse-papiers du système qui est utilisée. Si mode est QClipboard::Clipboard, le texte est stocké dans le presse-papiers global. Si mode est QClipboard::Selection, le texte est stocké dans la sélection globale de la souris. Si mode est QClipboard::FindBuffer, le texte est stocké dans la mémoire tampon de la chaîne de recherche.
Voir aussi text() et setMimeData().
bool QClipboard::supportsFindBuffer() const
Renvoie true si le presse-papiers prend en charge un tampon de recherche séparé ; sinon, renvoie false.
bool QClipboard::supportsSelection() const
Renvoie true si le presse-papiers prend en charge la sélection par la souris ; sinon, renvoie false.
QString QClipboard::text(QClipboard::Mode mode = Clipboard) const
Renvoie le texte du presse-papiers sous forme de texte brut, ou une chaîne vide si le presse-papiers ne contient pas de texte.
L'argument mode est utilisé pour contrôler quelle partie du presse-papiers du système est utilisée. Si mode est QClipboard::Clipboard, le texte est extrait du presse-papiers global. Si mode est QClipboard::Selection, le texte est récupéré à partir de la sélection globale de la souris. Si mode est QClipboard::FindBuffer, le texte est extrait de la mémoire tampon de la chaîne de recherche.
Voir également setText() et mimeData().
QString QClipboard::text(QString &subtype, QClipboard::Mode mode = Clipboard) const
Renvoie le texte du presse-papiers dans le sous-type subtype, ou une chaîne vide si le presse-papiers ne contient pas de texte. Si subtype est nul, n'importe quel sous-type est acceptable, et subtype prend la valeur du sous-type choisi.
L'argument mode est utilisé pour contrôler la partie du presse-papiers du système qui est utilisée. Si mode est QClipboard::Clipboard, le texte est extrait du presse-papiers global. Si mode est QClipboard::Selection, le texte est récupéré à partir de la sélection globale de la souris.
Les valeurs courantes pour subtype sont "plain" et "html".
Notez que l'appel répété de cette fonction, par exemple à partir d'un gestionnaire d'événements de touches, peut être lent. Dans ce cas, il est préférable d'utiliser le signal dataChanged().
Il s'agit d'une fonction surchargée.
© 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.