pygtkでファイルをクリップボードにコピー

微妙にこのまえの逆.

#!/usr/bin/python
# -*- coding: utf8 -*-
# vim: ff=unix fenc=utf-8 ts=4 sts=4 sw=4 ft=python autoindent

import sys
import gtk
import gobject

f = open(sys.argv[1], 'r')
val = f.read()
f.close()

def copy_text():
    cb = gtk.clipboard_get(gtk.gdk.SELECTION_CLIPBOARD)
    cb.set_text(val)
    gobject.source_remove(source_id) # 不要?
    gtk.main_quit()

source_id = gobject.timeout_add(0, copy_text)

gtk.main()

こういうときはtimeoutを使うしかないのかな?
でもこのsource_idまわりがなんかキモチワルイ.


こっちはstdinから読む.でも,sys.stdin.read()ってどうなんだろう.

#!/usr/bin/python
# -*- coding: utf8 -*-
# vim: ff=unix fenc=utf-8 ts=4 sts=4 sw=4 ft=python autoindent

import sys
import gtk
import gobject

def copy_text():
	cb = gtk.clipboard_get(gtk.gdk.SELECTION_CLIPBOARD)
	val = sys.stdin.read()
	cb.set_text(val)
	gobject.source_remove(source_id) # 要るの?
	gtk.main_quit()

source_id = gobject.timeout_add(0, copy_text)
gtk.main()