2013-08-23 45 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