2009-06-27 6 views
2

In Linux nach der Textauswahl kopiert es in den Puffer, so als könnten wir es einfügen, indem Sie auf die mittlere Maustaste klicken. Ich denke, dass es einen speziellen Puffer für dieses Ding gibt. Ich möchte es benutzen. Wie kann ich Daten von ausgewähltem Text erhalten?Linux und Zwischenablage

  • OS: Linux
  • Programmiersprache: C++
  • eigenen Bibliotheken: Qt

Dank.

+0

Das ist eine Funktion von X ... – dmckee

Antwort

6

Nur eine genauere Antwort als Paul Dixon, die Ihren Bedürfnissen entspricht:

QClipboard* clipboard = QApplication::clipboard(); 
QString selectedText = clipboard->text(QClipboard::Selection); 
1

Wenn Sie Qt verwenden, haben Sie die Feinhandbuchseite unter QClipboard gelesen?

QClipboard *clipboard = QApplication::clipboard(); 
QString clipboardText = clipboard->text(); 
+0

Es erhält Daten aus der üblichen Zwischenablage. Es ist nicht so, dass ich es brauche. – Ockonal

+0

Möglicherweise müssen Sie Ihre Frage erweitern, um auf das Problem hinzuweisen, das Sie lösen möchten –

1

das System, das die Auswahl und Einfügen von System tatsächlich behandelt ist X11 Sie Windows. Wenn Sie z. B. einen Text in Ihrem bevorzugten Editor erstellen, sendet die Anwendung eine X11-Anforderung, die dem X11-Server mitteilt, dass Sie eine aktive Auswahl haben. Wenn Sie dann irgendwo mit der mittleren Maustaste klicken, fragt der X11-Server die Anwendung ab, die dem Server die Auswahl für den eigentlichen Inhalt mitgeteilt hat. Dann werden die Inhalte an die empfangende Anwendung weitergeleitet.

Bibliotheken wie Qt bieten Wrapper für diesen Mechanismus, aber der zugrunde liegende Mechanismus ist X11.

2

Sie müssen zwischen Auswahl und Zwischenablage unterscheiden. Die QClipboard Dokumentation hat dies im Notes for X11 Users Abschnitt:

Das X11-Window-System hat das Konzept einer separaten Auswahl und Zwischenablage. Wenn Text ausgewählt ist, steht sofort als globale Mausauswahl zur Verfügung. Die globale Maus Auswahl kann später in die Zwischenablage kopiert werden. Per Konvention wird die mittlere Maustaste zum Einfügen der globalen Mausauswahl verwendet.

Mit QClipboard::Mode können Sie auswählen, welche Art (Zwischenablage oder Auswahl) Sie zugreifen möchten. Der wichtige Teil ist, dass Sie sich über den Unterschied zwischen Auswahl und Zwischenablage bewusst sein müssen.