Linux和剪贴板

时间:2009-06-27 11:04:18

标签: c++ qt clipboard

在Linux中选择文本后,它会复制到缓冲区,因此我们可以通过单击鼠标中键来粘贴它。我认为这个东西有一个特殊的缓冲区。我想用它。我怎样才能获得所选文本的数据?

  • 操作系统:Linux
  • 编程语言:c ++
  • 自己的图书馆:Qt

感谢。

4 个答案:

答案 0 :(得分:6)

比保罗迪克森更能准确回答你的需求:

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

答案 1 :(得分:3)

您需要区分选择和剪贴板。 QClipboard文档在Notes for X11 Users部分中有此内容:

  

X11 Window System有这个概念   单独的选择和剪贴板。   选择文本时,它是   立即可用作全球   小鼠选择。全球鼠标   以后可以将选择复制到   剪贴板。按惯例,中间   鼠标按钮用于粘贴   全球鼠标选择。

使用QClipboard::Mode,您可以选择要访问的类型(剪贴板或选择)。重要的是你需要了解选择和剪贴板之间的区别。

答案 2 :(得分:1)

如果您使用的是Qt,请阅读QClipboard上的精美手册页吗?

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

答案 3 :(得分:1)

实际处理选择和粘贴系统的系统是X11 Windows。当您在自己喜欢的编辑器中绘制一些文本时,应用程序会发送X11请求,告知X11服务器您有一个活动选择。如果然后在某处单击鼠标中键,X11服务器将询问应用程序,该应用程序告知服务器有关实际内容的选择。然后将内容转发到接收应用程序。

像Qt这样的库为这种机制提供了包装器,但底层机制是X11。