2010-07-09 15 views
1

J'écris une application python en utilisant pygtk. J'ai un thread principal qui appelle parfois un autre thread qui est censé construire une chaîne et ensuite le copier dans le presse-papiers avant de mourir. Mon fils « esclave » ressemble beaucoup à ceci:Pourquoi mon application pygtk plante-t-elle lors de la copie de texte dans un presse-papier?

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

Malheureusement, mon application se bloque un tiers du temps, montrant un message comme celui-ci:

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. 

Toute idée? Pourrait-il être un problème de threading? J'ai essayé d'initialiser le presse-papiers à l'intérieur de l'esclave. init, en mettant la chaîne sur un TextBuffer, puis en appelant tb.copy_clipboard (c), j'ai tout essayé, aucun d'eux n'a fonctionné.

+0

La variable u est indéfinie? – Petriborg

+0

merci. maintenant est correct –

Répondre

0

Vous ne pouvez pas interagir avec Gtk à partir de threads sans prendre certaines précautions nécessaires. Vérifiez this PyGTK FAQ entry.