如何使用 PyGTK/GTK+ 从 X 剪贴板粘贴 HTML 数据?
我需要类似 xclip 的东西,但能够将剪贴板数据输出为 HTML,而不仅仅是纯文本。我正在使用 PyGTK,但我并不害怕 C 语言中的普通 GTK+。
我已阅读 GtkClipboard和 PyGTK 的 gtk.Clipboard引用文献,我发现了这个question ,但我需要一个小例子来帮助我开始。
最佳答案
更新答案
原始答案(如下)使用旧的 API,这里是更新版本:
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("\n".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 - 使用 GTK+ 或 PyGTK 转储 X 剪贴板数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2346924/