почему происходит сбой моего приложения pygtk при копировании текста в буфер обмена? - PullRequest
1 голос
/ 09 июля 2010

Я пишу приложение на Python, используя 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), я попробовал все, ни один из них не работал.

1 Ответ

0 голосов
/ 10 июля 2010

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

...