期待どおりに動作しない単純なコードがいくつかあります。まず、Gtk.Clipboard.get(Gdk.SELECTION_PRIMARY).set_text()
長さ引数オプションで引数を 1 つだけ受け入れることができるはずですが、機能しません (以下を参照)。最後に、Unicode°
シンボルを貼り付けると、クリップボードから取得しようとするとテキストの設定が壊れます (他のプログラムには貼り付けられません)。次の警告が表示されます。
Gdk-WARNING **: UTF8_STRING からの選択の変換中にエラーが発生しました
>>> from gi.repository.Gtk import Clipboard
>>> from gi.repository.Gdk import SELECTION_PRIMARY
>>> d='\u00B0'
>>> print(d)
°
>>> cb=Clipboard
Clipboard
>>> cb=Clipboard.get(SELECTION_PRIMARY)
>>> cb.set_text(d) #this should work
Traceback (most recent call last):
File "<ipython-input-6-b563adc3e800>", line 1, in <module>
cb.set_text(d)
File "/usr/lib/python3/dist-packages/gi/types.py", line 43, in function
return info.invoke(*args, **kwargs)
TypeError: set_text() takes exactly 3 arguments (2 given)
>>> cb.set_text(d, len(d))
>>> cb.wait_for_text()
(.:13153): Gdk-WARNING **: Error converting selection from UTF8_STRING
'\\Uffffffff\\Uffffffff'