[英]Copy HTML to clipboard with PyGObject
我想在 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,但是根據這個答案,它已被棄用,並且在 Python 3.x 中不受支持。)
看起來 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
一些潛在的解決方法:
我無法通過 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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.