使用GT中的GTK库清除系统剪贴板

时间:2010-03-10 16:14:59

标签: c gtk

我正在调用以下函数来尝试清除系统剪贴板:

GtkClipboard *clipboard;

clipboard = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD);
gtk_clipboard_clear(clipboard);
然而,它并没有清洁任何东西。我搜索了Gnome和GTK +文档以及无数的示例代码片段,我不知道该怎么做。

所以我的问题,你如何通过代码清除系统(linux,gnome)剪贴板? 谢谢!

1 个答案:

答案 0 :(得分:2)

我相信你需要用零长度的文本来设置它以完全清除它,我不确定自己为什么这是必要的但是这段代码似乎有效:

clipboard = gtk_clipboard_get(GDK_SELECTION_PRIMARY);                                                            
gtk_clipboard_clear(clipboard);                                                                                  
gtk_clipboard_set_text(clipboard, "", 0);                                                                        

clipboard = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD);                                                          
gtk_clipboard_clear(clipboard);                                                                                
gtk_clipboard_set_text(clipboard, "", 0);

请注意,当GTK +在X11下运行时,实际上有两个“剪贴板”,GTK(GDK_SELECTION_CLIPBOARD)和X11(GDK_SELECTION_PRIMARY)。在Windows下,GDK_SELECTION_PRIMARY上的操作我认为什么都不做。