在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