使用GTK+或PyGTK转储X剪贴板数据 [英] Dump X clipboard data with GTK+ or PyGTK

查看:26
本文介绍了使用GTK+或PyGTK转储X剪贴板数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何使用PyGTK/GTK+从X剪贴板粘贴HTML数据?

我需要类似xclip的东西,但要能够将剪贴板数据输出为HTML,而不仅仅是纯文本。我在使用PyGTK,但我不怕C中的纯GTK+。

我已经阅读了GtkClipboard和PyGTK的gtk.Clipboard参考,我找到了这个question,但我需要一个小示例来开始。

推荐答案

已更新答案

原答案(下图)使用旧接口,更新版本如下:

import gi

gi.require_version("Gtk", "3.0")
from gi.repository import Gtk, Gdk

clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD)
text = clipboard.wait_for_contents(Gdk.Atom.intern("text/html", True))
print(text.get_data())

另请注意,您的应用程序可能使用与";text/html";不同的目标:您可以使用:

检查哪些目标可用
def get_targets(clipboard, targets, n_targets):
    assert len(targets) == n_targets
    print(f"There are {n_targets} targets:")
    print("
".join(map(str, targets)))

clipboard.request_targets(get_targets)

原始答案

找到了。我使用了类似以下内容:

clipboard = gtk.Clipboard()
target = "text/html"
clipboard.wait_for_contents(target)
clipboard.request_contents(target, dump_clipboard_callback)

然后回调函数可以简单地提取数据:

def dump_clipboard_callback(clipboard, selection_data, data=None):
    print selection_data.data

这篇关于使用GTK+或PyGTK转储X剪贴板数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆