PyGtk剪贴板仅在python交互模式下工作

时间:2013-09-20 11:41:21

标签: python gtk

这是我的Python脚本,用于查看剪贴板中的数据:

import gtk
import time

clipboard = gtk.clipboard_get()
print  clipboard.wait_for_targets()
def f(clipboard,selection,user_data):   print selection.data

clipboard.request_contents('STRING', f)

while True:
    time.sleep(1)

请注意:

  • 我在最后使用time.sleep(1)让Python有时间调用回调函数f
  • 我无法使用线程,因为这些是包threadsgtk的问题。

行为是:

  • 如果我运行python并复制此文本就可以了。

  • 如果我运行python thisscript.py它不起作用(函数f永远不会被调用)

  • 如果我运行cat thisscript.py | python它不起作用(函数f永远不会被调用)

怎么会发生? (我怎么能解决它?)

1 个答案:

答案 0 :(得分:1)

您没有运行GLib主循环:如果您这样做,许多基于GObject的东西可能会被破坏。试试这个而不是睡眠循环:

gtk.mainloop()