2010-07-09 2 views
1

Я пишу приложение python с помощью pygtk. У меня есть основной поток, который иногда вызывает другой поток, который должен построить строку, а затем скопировать ее в буфер обмена, прежде чем умереть. Мой «ведомый» поток выглядит так же, как это:Почему приложение pygtk падает при копировании текста в буфер обмена?

class Slave(threading.Thread): 
    def run(self): 
     s = build_string() 
     c = gtk.Clipboard() 
     c.set_text(s) 

К сожалению, мое приложение падает на одну треть времени, показывая сообщение, как это:

python: xcb_io.c:221: poll_for_event: Assertion `(((long) (event_sequence) - (long) (dpy->request)) <= 0)' failed. 
cloudapp.py: Fatal IO error 11 (Resource temporarily unavailable) on X server :0.0. 

Любая идея? Это может быть проблема с потоками? Я попытался инициализировать буфер обмена внутри Slave. init, поместив строку в TextBuffer, а затем вызвав tb.copy_clipboard (c), я пробовал все, ни одна из них не работала.

+0

переменная u не определена? – Petriborg

+0

спасибо. теперь верно –

ответ

0

Вы не можете взаимодействовать с Gtk из потоков, не принимая при этом некоторые необходимые меры предосторожности. Проверьте this PyGTK FAQ entry.

 Смежные вопросы

  • Нет связанных вопросов^_^