This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2009年09月17日 17:01 by moraygrieve, last changed 2022年04月11日 14:56 by admin. This issue is now closed.
| Files | ||||
|---|---|---|---|---|
| File name | Uploaded | Description | Edit | |
| example.py | moraygrieve, 2009年09月17日 17:00 | |||
| Messages (6) | |||
|---|---|---|---|
| msg92781 - (view) | Author: Moray Grieve (moraygrieve) | Date: 2009年09月17日 17:00 | |
The attached file has an example where a Tk GUI is launched as a seperate thread - this all works fine in Python 2.5, but in Python 2.6 the thread hangs. The issue seems to be in the line; self.messageBoxDetails.insert(INSERT, "Hello world") Comment this line out, or use an empty string rather than "Hello World", and the example works in both Python 2.5 and Python 2.6. I have not been able to seen any related issues to this and wonder if this is a bug in the 2.6 Tkinter module. |
|||
| msg92782 - (view) | Author: Moray Grieve (moraygrieve) | Date: 2009年09月17日 17:04 | |
I should say this is running on Windows XP |
|||
| msg174639 - (view) | Author: Ramchandra Apte (Ramchandra Apte) * | Date: 2012年11月03日 15:47 | |
Bump. |
|||
| msg180034 - (view) | Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) | Date: 2013年01月15日 16:34 | |
Tkinter as perhaps any other GUI library must be used only from one thread. |
|||
| msg183767 - (view) | Author: Terry J. Reedy (terry.reedy) * (Python committer) | Date: 2013年03月08日 21:53 | |
Quoting from msg179101 on #16823, which I turned into a doc issue: ''' What you are doing appears to be unsupported (invalid). From http://www.astro.washington.edu/users/rowen/TkinterSummary.html "all Tkinter access must be from the main thread (or more precisely, from the thread that calls the mainloop). Violating this is likely to cause nasty and mysterious symptoms such as freezes and core dumps." ''' You got the freeze part. I suspect what changed from 2.5 to 2.6 was the tcl/tk version delivered with Python on Windows. |
|||
| msg316452 - (view) | Author: Terry J. Reedy (terry.reedy) * (Python committer) | Date: 2018年05月13日 04:56 | |
I changes the import to theading instead of thread and the start line to threading.Thread(target=example) On 3.7 with tcl/tk 8.6 with thread support, I see the gui when mainloop is called in the thread, and then the >>> prompt appears. On 2.7 with tk 8.5 without thread support, I see no hang but only >>>, no box, after the same time delay. With thread support, thread calls work. Without, success varies, and so do failure modes. See #33479 for proposed doc on tkinter and thread safety. |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:56:53 | admin | set | github: 51182 |
| 2018年05月13日 04:56:37 | terry.reedy | set | messages: + msg316452 |
| 2013年03月08日 21:53:48 | terry.reedy | set | status: open -> closed resolution: not a bug messages: + msg183767 stage: resolved |
| 2013年01月15日 16:34:00 | serhiy.storchaka | set | nosy:
+ terry.reedy, serhiy.storchaka messages: + msg180034 |
| 2012年11月03日 15:47:34 | Ramchandra Apte | set | nosy:
+ Ramchandra Apte messages: + msg174639 |
| 2009年09月17日 17:04:23 | moraygrieve | set | messages: + msg92782 |
| 2009年09月17日 17:01:00 | moraygrieve | create | |