在Linux中選擇文本後,它會複製到緩衝區,因此我們可以通過單擊鼠標中鍵來粘貼它。我認爲這個東西有一個特殊的緩衝區。我想用它。我怎樣才能得到選定文本的數據?Linux和剪貼板
- 操作系統:Linux
- 編程語言:C++
- 自己的庫:Qt的
感謝。
在Linux中選擇文本後,它會複製到緩衝區,因此我們可以通過單擊鼠標中鍵來粘貼它。我認爲這個東西有一個特殊的緩衝區。我想用它。我怎樣才能得到選定文本的數據?Linux和剪貼板
感謝。
只是一個更準確的答案比保羅迪克森,回答您的需求:
QClipboard* clipboard = QApplication::clipboard();
QString selectedText = clipboard->text(QClipboard::Selection);
如果你使用Qt,你有沒有閱讀QClipboard上的精細手冊頁?
QClipboard *clipboard = QApplication::clipboard();
QString clipboardText = clipboard->text();
它從通常的剪貼板獲取數據。這不是我需要的。 – Ockonal 2009-06-27 11:17:24
實際處理的選擇和粘貼系統,該系統是X11的Windows。當你在你最喜歡的編輯器中畫一些文本時,應用程序發送X11請求,告訴X11服務器你有一個活動選擇。如果您在某處單擊鼠標中鍵,則X11服務器會查詢向服務器通知實際內容選擇的應用程序。然後內容被轉發到接收應用程序。
像Qt這樣的庫爲這種機制提供了包裝,但底層機制是X11。
您需要區分選擇和剪貼板。該QClipboard
文檔有在Notes for X11 Users部分:
X11窗口系統有一個單獨的選擇和剪貼板的概念 。 選擇文本時,立即可用 作爲全局選項 。全局鼠標 選擇可以稍後複製到剪貼板 。按照慣例,中間的 鼠標按鈕用於粘貼 全局鼠標選擇。
隨着QClipboard::Mode
你可以選擇你想要訪問的類型(剪貼板或選擇)。重要的部分是你需要了解選擇和剪貼板之間的區別。
這是X的一個功能... – dmckee 2009-06-27 14:16:00