Linux 使用PyGObject将HTML复制到剪贴板
我想在LinuxGUI环境中将HTML(和纯文本等价物)复制到剪贴板。跨平台是理想的,尽管Linux是我的直接目标。我还想使用在Python3.x和2.x中工作的东西 根据,一个Linux 使用PyGObject将HTML复制到剪贴板,linux,python-3.x,pygobject,Linux,Python 3.x,Pygobject,我想在LinuxGUI环境中将HTML(和纯文本等价物)复制到剪贴板。跨平台是理想的,尽管Linux是我的直接目标。我还想使用在Python3.x和2.x中工作的东西 根据,一个Gtk.Clipboardobjectset_with_data()方法应该是合适的。但是当我尝试使用它时,类中没有set\u with\u data成员 >>> from gi.repository import Gtk, Gdk >>> clipboard = Gtk.Clipbo
Gtk.Clipboard
objectset_with_data()
方法应该是合适的。但是当我尝试使用它时,类中没有set\u with\u 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'
>>从gi.repository导入Gtk、Gdk
>>>剪贴板=Gtk.clipboard.get(Gdk.SELECTION\u剪贴板)
>>>clipboard.set_与_数据
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
AttributeError:“剪贴板”对象没有属性“使用\u数据设置\u”
如何使用PyGObject将HTML加明文复制到剪贴板
(我可能会考虑使用Pygtk,但是它在Python 3 .x中不支持,不支持)
看起来像StIyWixDATA()不通过内省暴露,可能是因为函数接受两个C回调(不被内省或绑定支持)。请参阅:这是一个已经用GTK+记录的错误:
一些潜在的解决办法:
- 使用剪贴板将程序限制为仅包含文本。set_text()(符合您的要求)
- 编写一个C Python扩展,甚至在您自己的shim库上使用内省,该库提供了一个带有_data()的set_的闭包版本。也可以使用像ctypes这样的东西,但可能会很痛苦
- 使用PyGTK(正如您所提到的不再维护)或其他工具包,如PySide/Qt、wxPython等
导入子流程
s=“要复制的文本!”
cmd=[“xclip”、“-sel”、“clip”、“-t”、“text/html”、“-f”]
子进程检查输出(cmd,input=s,text=True)
自2011年8月以来,GTK+缺陷仍然标记为“新”。我再也憋不住气了
import subprocess
s = "TEXT TO <b>COPY</b>!"
cmd = ["xclip", "-sel", "clip", "-t", "text/html", "-f"]
subprocess.check_output(cmd, input=s, text=True)