Scrollable Tkinter widget not threadsafe?

abli abli at freemail.hu
Wed Jun 18 14:29:50 EDT 2003


The exception you get is 

RuntimeError: Calling Tcl from different appartment

You have to do all calls to tkinter from one thread. 
In the example you give, you create the widget, then start a new thread
which enters mainloop. This means that you try to use two threads to
communicate with Tkinter, which causes the exception.
By moving all tkinter calls, i.e. the lines
  root=Tkinter.Tk()
  FrameScollTest (root).pack(fill='both',expand=True)
into show_widget(), it runs fine.
    
Of course, this has nothing to do with the type of widget you want to use,
a Tkinter.Label behaves the same way.

Abel Daniel




More information about the Python-list mailing list