2013-08-23 49 views
1

我正在使用gtk在Linux平台上用X11清除剪贴板,并且我希望它可以在所有Linux平台上运行。但是,我的gtk代码不适用于Fedora KDE和Fedora的一些发行版。当调用clipboard_clear函数时,剪贴板不会被清除。清除KDE上的剪贴板

void clipboard_clear() { 
    gtk_init(&args,NULL); 
    GtkClipboard* cb = gtk_clipboard_get(GDK_SELECTION_PRIMARY); 
    gtk_clipboard_clear(cb); 
    gtk_clipboard_set_text(cb, "", 0); 

    cb = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD); 
    gtk_clipboard_clear(cb); 
    gtk_clipboard_set_text(cb, "", 0); 
} 

有什么我可以做的,以使GTK实现工作,因为它假设在Fedora KDE上?如果没有,是否有任何库可以清除KDE上的剪贴板并进行静态链接? (由于许可限制,Qt不是其中之一。)

+0

什么许可限制? – lpapp

+0

@LaszloPapp除非获得商业许可,否则您不能静态链接到Qt。 –

+0

为什么要静态链接到一个稳定的API,特别是当已经在KDE系统上以动态方式发布时? – lpapp

回答

0

外部剪贴板管理器阻止上述代码清除剪贴板。

在Fedora 19 KDE上,预装了klipper。关闭它后,清除该功能没有任何问题。同样在Fedora 19 LXDE上,预装了clipit

+0

如果我想要一个程序清除剪贴板并保持清晰,那么是否需要为每个Linux发行版实施不同的解决方案? – gonzobrains