我想在Linux GUI环境中将HTML(和纯文本等效文件)复制到剪贴板。跨平台是理想的,尽管Linux是我的直接目标。我还想使用在Python 3.x和2.x中运行的东西。
根据PyGObject docs,Gtk.Clipboard
对象set_with_data()
方法应该是合适的。但是当我尝试使用它时,该类中没有set_with_data
成员。
>>> from gi.repository import Gtk, Gdk
>>> clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD)
>>> clipboard.set_with_data
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'Clipboard' object has no attribute 'set_with_data'
如何使用PyGObject将HTML加纯文本复制到剪贴板?
(我可能会考虑使用PyGTK,但是according to this answer它已被弃用,在Python 3.x中不受支持。)
答案 0 :(得分:1)
看起来set_with_data()没有通过内省公开,可能是因为该函数采用了两个C回调(内省或绑定不支持)。请参阅:
https://developer.gnome.org/gtk3/stable/gtk3-Clipboards.html#gtk-clipboard-set-with-data
这是已经使用GTK +记录的错误:
https://bugzilla.gnome.org/show_bug.cgi?id=656312
一些可能的解决方法:
答案 1 :(得分:0)
我无法通过Python进行此工作,但是我发现使用xclip可以使用以下解决方法:
import subprocess
s = "TEXT TO <b>COPY</b>!"
cmd = ["xclip", "-sel", "clip", "-t", "text/html", "-f"]
subprocess.check_output(cmd, input=s, text=True)