QClipboard Class
Die Klasse QClipboard ermöglicht den Zugriff auf die Zwischenablage des Fenstersystems. Mehr...
Kopfzeile: | #include <QClipboard> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake: | QT += gui |
Vererbungen: | QObject |
Öffentliche Typen
enum | Mode { Clipboard, Selection, FindBuffer } |
Öffentliche Funktionen
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 |
Signale
void | changed(QClipboard::Mode mode) |
void | dataChanged() |
void | findBufferChanged() |
void | selectionChanged() |
Detaillierte Beschreibung
Die Zwischenablage bietet einen einfachen Mechanismus zum Kopieren und Einfügen von Daten zwischen Anwendungen.
QClipboard unterstützt die gleichen Datentypen wie QDrag und verwendet ähnliche Mechanismen. Für fortgeschrittene Verwendung der Zwischenablage lesen Sie Drag and Drop.
Es gibt ein einziges QClipboard-Objekt in einer Anwendung, zugänglich als QGuiApplication::clipboard().
Beispiel:
QClipboard *clipboard = QGuiApplication::clipboard(); QString originalText = clipboard->text(); // etc. clipboard->setText(newText);
QClipboard bietet einige Komfortfunktionen für den Zugriff auf gängige Datentypen: setText() ermöglicht den Austausch von Unicode-Text und setPixmap() und setImage() ermöglichen den Austausch von QPixmaps und QImages zwischen Anwendungen. Die Funktion setMimeData() ist das Nonplusultra an Flexibilität: Mit ihr können Sie beliebige QMimeData in die Zwischenablage einfügen. Für jede dieser Funktionen gibt es entsprechende Getter, z. B. text(), image() und pixmap(). Sie können die Zwischenablage löschen, indem Sie clear() aufrufen.
Es folgt ein typisches Beispiel für die Verwendung dieser Funktionen:
void DropArea::paste() { const QClipboard *clipboard = QApplication::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")); } }
Hinweise für X11-Benutzer
- Das X11 Window System hat das Konzept einer getrennten Auswahl und Zwischenablage. Wenn ein Text ausgewählt wird, ist er sofort als globale Mausauswahl verfügbar. Die globale Mausauswahl kann später in die Zwischenablage kopiert werden. Konventionell wird die mittlere Maustaste zum Einfügen der globalen Mausauswahl verwendet.
- Wenn Sie die Auswahl in einem Fenster ändern, informiert X11 nur den Eigentümer und den vorherigen Eigentümer über die Änderung, d. h. es werden nicht alle Anwendungen darüber informiert, dass sich die Auswahl oder die Daten in der Zwischenablage geändert haben.
- Schließlich ist die X11-Zwischenablage ereignisgesteuert, d.h. die Zwischenablage funktioniert nicht richtig, wenn die Ereignisschleife nicht läuft. Es wird empfohlen, den Inhalt der Zwischenablage in direkter Reaktion auf Benutzereingaben zu speichern oder abzurufen, z. B. auf das Drücken und Loslassen von Maustasten oder Tasten. Sie sollten den Inhalt der Zwischenablage nicht als Reaktion auf Zeitgeber- oder Nicht-Benutzereingabeereignisse speichern oder abrufen.
- Da es keine Standardmethode zum Kopieren und Einfügen von Dateien zwischen Anwendungen unter X11 gibt, werden derzeit verschiedene MIME-Typen und Konventionen verwendet. Zum Beispiel erwartet Nautilus, dass Dateien mit einem
x-special/gnome-copied-files
MIME-Typ geliefert werden, dessen Daten mit der Ausschneide-/Kopieraktion, einem Zeilenumbruch und der URL der Datei beginnen.
Hinweise für macOS-Benutzer
macOS unterstützt einen separaten Suchpuffer, der den aktuellen Suchstring bei Suchoperationen enthält. Auf diesen Suchzwischenspeicher kann durch Angabe des Modus FindBuffer zugegriffen werden.
Hinweise für Windows- und macOS-Benutzer
- Windows und macOS unterstützen die globale Mausauswahl nicht; sie unterstützen nur die globale Zwischenablage, d. h. sie fügen der Zwischenablage nur dann Text hinzu, wenn ein explizites Kopieren oder Ausschneiden vorgenommen wird.
- Unter Windows und macOS gibt es kein Eigentumskonzept; die Zwischenablage ist eine vollständig globale Ressource, so dass alle Anwendungen über Änderungen informiert werden.
Hinweise für Android-Benutzer
Unter Android werden nur diese Mime-Typen unterstützt: text/plain, text/html und text/uri-list.
Siehe auch QGuiApplication.
Dokumentation der Mitgliedstypen
enum QClipboard::Mode
Dieser Enum-Typ wird verwendet, um zu steuern, welcher Teil der Systemzwischenablage von QClipboard::mimeData(), QClipboard::setMimeData() und verwandten Funktionen verwendet wird.
Konstante | Wert | Beschreibung |
---|---|---|
QClipboard::Clipboard | 0 | gibt an, dass Daten in der globalen Zwischenablage gespeichert und abgerufen werden sollen. |
QClipboard::Selection | 1 | zeigt an, dass die Daten in der globalen Mausauswahl gespeichert und abgerufen werden sollen. Unterstützung für Selection wird nur auf Systemen mit einer globalen Mausauswahl (z.B. X11) angeboten. |
QClipboard::FindBuffer | 2 | zeigt an, dass die Daten im Suchpuffer gespeichert und abgerufen werden sollen. Dieser Modus wird unter macOS zum Speichern von Suchstrings verwendet. |
Siehe auch QClipboard::supportsSelection().
Dokumentation der Mitgliedsfunktionen
[signal]
void QClipboard::changed(QClipboard::Mode mode)
Dieses Signal wird ausgegeben, wenn die Daten für die angegebene Zwischenablage mode geändert werden.
Siehe auch dataChanged(), selectionChanged(), und findBufferChanged().
void QClipboard::clear(QClipboard::Mode mode = Clipboard)
Löscht den Inhalt der Zwischenablage.
Das Argument mode wird verwendet, um zu steuern, welcher Teil der Systemzwischenablage verwendet wird. Wenn mode gleich QClipboard::Clipboard ist, löscht diese Funktion den Inhalt der globalen Zwischenablage. Wenn mode gleich QClipboard::Selection ist, löscht diese Funktion den Inhalt der globalen Mausauswahl. Wenn mode gleich QClipboard::FindBuffer ist, löscht diese Funktion den Suchstringpuffer.
Siehe auch QClipboard::Mode und supportsSelection().
[signal]
void QClipboard::dataChanged()
Dieses Signal wird ausgegeben, wenn die Daten in der Zwischenablage geändert werden.
Unter macOS und mit Qt Version 4.3 oder höher werden Änderungen in der Zwischenablage, die von anderen Anwendungen vorgenommen wurden, nur erkannt, wenn die Anwendung aktiviert ist.
Siehe auch findBufferChanged(), selectionChanged(), und changed().
[signal]
void QClipboard::findBufferChanged()
Dieses Signal wird ausgegeben, wenn der Suchpuffer geändert wird. Dies gilt nur für macOS.
Mit Qt Version 4.3 oder höher werden Änderungen in der Zwischenablage durch andere Anwendungen nur erkannt, wenn die Anwendung aktiviert ist.
Siehe auch dataChanged(), selectionChanged(), und changed().
QImage QClipboard::image(QClipboard::Mode mode = Clipboard) const
Gibt das Bild der Zwischenablage zurück oder ein Nullbild, wenn die Zwischenablage kein Bild enthält oder ein Bild in einem nicht unterstützten Bildformat enthält.
Das Argument mode wird verwendet, um zu steuern, welcher Teil der Systemzwischenablage verwendet wird. Wenn mode gleich QClipboard::Clipboard ist, wird das Bild aus der globalen Zwischenablage abgerufen. Wenn mode gleich QClipboard::Selection ist, wird das Bild aus der globalen Mausauswahl abgerufen.
Siehe auch setImage(), pixmap(), mimeData(), und QImage::isNull().
const QMimeData *QClipboard::mimeData(QClipboard::Mode mode = Clipboard) const
Gibt einen Zeiger auf eine QMimeData Repräsentation der aktuellen Zwischenablage-Daten zurück (kann nullptr
sein, wenn die angegebene mode nicht von der Plattform unterstützt wird).
Das Argument mode wird verwendet, um zu steuern, welcher Teil der Systemzwischenablage verwendet wird. Wenn mode gleich QClipboard::Clipboard ist, werden die Daten aus der globalen Zwischenablage abgerufen. Wenn mode gleich QClipboard::Selection ist, werden die Daten aus der globalen Mausauswahl abgerufen. Wenn mode gleich QClipboard::FindBuffer ist, werden die Daten aus dem Suchstringpuffer abgerufen.
Die Funktionen text(), image() und pixmap() sind einfachere Wrapper zum Abrufen von Text-, Bild- und Pixmap-Daten.
Hinweis: Der zurückgegebene Zeiger kann ungültig werden, wenn sich der Inhalt der Zwischenablage ändert; entweder durch den Aufruf einer der Setter-Funktionen oder extern durch die Änderung der Systemzwischenablage.
Siehe auch setMimeData().
bool QClipboard::ownsClipboard() const
Gibt true
zurück, wenn dieses Clipboard-Objekt die Clipboard-Daten besitzt; andernfalls wird false
zurückgegeben.
bool QClipboard::ownsFindBuffer() const
Gibt true
zurück, wenn dieses Clipboard-Objekt die Daten des Suchpuffers besitzt; andernfalls wird false
zurückgegeben.
bool QClipboard::ownsSelection() const
Gibt true
zurück, wenn dieses Clipboard-Objekt die Mausauswahldaten besitzt; andernfalls wird false
zurückgegeben.
QPixmap QClipboard::pixmap(QClipboard::Mode mode = Clipboard) const
Gibt die Pixmap der Zwischenablage zurück, oder null, wenn die Zwischenablage keine Pixmap enthält. Beachten Sie, dass dabei Informationen verloren gehen können. Wenn das Bild beispielsweise 24 Bit und die Anzeige 8 Bit hat, wird das Ergebnis in 8 Bit umgewandelt, und wenn das Bild einen Alphakanal hat, enthält das Ergebnis nur eine Maske.
Das Argument mode wird verwendet, um zu steuern, welcher Teil der Systemzwischenablage verwendet wird. Wenn mode gleich QClipboard::Clipboard ist, wird die Pixmap aus der globalen Zwischenablage abgerufen. Wenn mode gleich QClipboard::Selection ist, wird die Pixelkarte aus der globalen Mausauswahl abgerufen.
Siehe auch setPixmap(), image(), mimeData(), und QPixmap::convertFromImage().
[signal]
void QClipboard::selectionChanged()
Dieses Signal wird ausgegeben, wenn die Auswahl geändert wird. Dies gilt nur für Windowing-Systeme, die Auswahlen unterstützen, z.B. X11. Windows und macOS unterstützen keine Auswahlen.
Siehe auch dataChanged(), findBufferChanged(), und changed().
void QClipboard::setImage(const QImage &image, QClipboard::Mode mode = Clipboard)
Kopiert die Seite image in die Zwischenablage.
Mit dem Argument mode wird gesteuert, welcher Teil der Systemzwischenablage verwendet wird. Wenn mode gleich QClipboard::Clipboard ist, wird das Bild in der globalen Zwischenablage gespeichert. Wenn mode gleich QClipboard::Selection ist, werden die Daten in der globalen Mausauswahl gespeichert.
Dies ist die Kurzform für:
Siehe auch image(), setPixmap(), und setMimeData().
void QClipboard::setMimeData(QMimeData *src, QClipboard::Mode mode = Clipboard)
Setzt die Daten der Zwischenablage auf src. Das Eigentum an den Daten wird in die Zwischenablage übertragen. Wenn Sie die Daten entfernen wollen, rufen Sie entweder clear() auf oder rufen Sie setMimeData() erneut mit neuen Daten auf.
Das Argument mode wird verwendet, um zu steuern, welcher Teil der Systemzwischenablage verwendet wird. Wenn mode gleich QClipboard::Clipboard ist, werden die Daten in der globalen Zwischenablage gespeichert. Wenn mode gleich QClipboard::Selection ist, werden die Daten in der globalen Mausauswahl gespeichert. Wenn mode gleich QClipboard::FindBuffer ist, werden die Daten im Suchstringpuffer gespeichert.
Die Funktionen setText(), setImage() und setPixmap() sind einfachere Wrapper zum Setzen von Text-, Bild- und Pixmap-Daten.
Siehe auch mimeData().
void QClipboard::setPixmap(const QPixmap &pixmap, QClipboard::Mode mode = Clipboard)
Kopiert pixmap in die Zwischenablage. Beachten Sie, dass dies langsamer ist als setImage(), da es zuerst QPixmap in QImage umwandeln muss.
Das Argument mode wird verwendet, um zu bestimmen, welcher Teil der Systemzwischenablage verwendet wird. Wenn mode gleich QClipboard::Clipboard ist, wird die Pixmap in der globalen Zwischenablage gespeichert. Wenn mode gleich QClipboard::Selection ist, wird die Pixelkarte in der globalen Mausauswahl gespeichert.
Siehe auch pixmap(), setImage(), und setMimeData().
void QClipboard::setText(const QString &text, QClipboard::Mode mode = Clipboard)
Kopiert text als reinen Text in die Zwischenablage.
Mit dem Argument mode wird gesteuert, welcher Teil der Systemzwischenablage verwendet wird. Wenn mode gleich QClipboard::Clipboard ist, wird der Text in der globalen Zwischenablage gespeichert. Wenn mode gleich QClipboard::Selection ist, wird der Text in der globalen Mausauswahl gespeichert. Wenn mode gleich QClipboard::FindBuffer ist, wird der Text im Suchstringpuffer gespeichert.
Siehe auch text() und setMimeData().
bool QClipboard::supportsFindBuffer() const
Gibt true
zurück, wenn die Zwischenablage einen separaten Suchpuffer unterstützt; andernfalls wird false
zurückgegeben.
bool QClipboard::supportsSelection() const
Gibt true
zurück, wenn die Zwischenablage die Mausauswahl unterstützt; andernfalls wird false
zurückgegeben.
QString QClipboard::text(QClipboard::Mode mode = Clipboard) const
Gibt den Text der Zwischenablage als reinen Text zurück oder eine leere Zeichenkette, wenn die Zwischenablage keinen Text enthält.
Das Argument mode wird verwendet, um zu steuern, welcher Teil der Systemzwischenablage verwendet wird. Wenn mode gleich QClipboard::Clipboard ist, wird der Text aus der globalen Zwischenablage abgerufen. Wenn mode gleich QClipboard::Selection ist, wird der Text aus der globalen Mausauswahl abgerufen. Wenn mode gleich QClipboard::FindBuffer ist, wird der Text aus dem Suchstring-Puffer geholt.
Siehe auch setText() und mimeData().
QString QClipboard::text(QString &subtype, QClipboard::Mode mode = Clipboard) const
Dies ist eine überladene Funktion.
Gibt den Text der Zwischenablage im Subtyp subtype zurück oder einen leeren String, wenn die Zwischenablage keinen Text enthält. Wenn subtype null ist, ist jeder Subtyp akzeptabel, und subtype wird auf den gewählten Subtyp gesetzt.
Das Argument mode wird verwendet, um zu steuern, welcher Teil der Systemzwischenablage verwendet wird. Wenn mode gleich QClipboard::Clipboard ist, wird der Text aus der globalen Zwischenablage abgerufen. Wenn mode gleich QClipboard::Selection ist, wird der Text aus der globalen Mausauswahl abgerufen.
Übliche Werte für subtype sind "plain" und "html".
Beachten Sie, dass der wiederholte Aufruf dieser Funktion, z. B. über einen Key Event Handler, langsam sein kann. In solchen Fällen sollten Sie stattdessen das Signal dataChanged()
verwenden.
© 2025 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.