Issue4116
Created on 2008-10-13 22:57 by gregorlingl, last changed 2022-04-11 14:56 by admin. This issue is now closed.
| Files | ||||
|---|---|---|---|---|
| File name | Uploaded | Description | Edit | |
| ScrolledCanvas.__init__.diff | gregorlingl, 2008-10-13 22:57 | bugfix | ||
| Messages (4) | |||
|---|---|---|---|
| msg74709 - (view) | Author: Gregor Lingl (gregorlingl) | Date: 2008-10-13 22:57 | |
In ScrolledCanvas.__init__() there's a name conflict with a methodname of the parentclass Frame: _root. The bugfix consists in renaming this attribute, which occurs only twice. No change in behaviour at all. Regards, Gregor |
|||
| msg74720 - (view) | Author: Gregor Lingl (gregorlingl) | Date: 2008-10-14 04:52 | |
This patch applies to Python 2.6 as well Gregor |
|||
| msg76021 - (view) | Author: Gregor Lingl (gregorlingl) | Date: 2008-11-18 22:17 | |
I'd like to see this patch accepted and done for Python 2.6.1 and (at
the same time) python 3.0 before the last rc is released. So could you
dedicate a few minutes to reviewing it.
To demonstrate the nature of this issue (and also the nuisance it could
produce) I've constructed a minimal example to show the consequences of
the bug:
import turtle
s = turtle.Screen()
def changecolor():
s.bgcolor(1.0, 0.5) # needs 3 floats as arguments
s.ontimer(changecolor, 1000)
turtle.mainloop()
This should create an error message like this:
....
TurtleGraphicsError: bad color arguments: (100, 100)
Instead it results in:
Traceback (most recent call last):
File "C:\_\provoke_error.py", line 11, in <module>
turtle.mainloop()
File "C:\Python26\lib\lib-tk\Tkinter.py", line 325, in mainloop
_default_root.tk.mainloop(n)
File "C:\Python26\lib\lib-tk\Tkinter.py", line 1414, in __call__
self.widget._report_exception()
File "C:\Python26\lib\lib-tk\Tkinter.py", line 1175, in _report_exception
root = self._root()
AttributeError: _Root instance has no __call__ method
because the _root() method defined in line 1105 of Tkinter.py is
overwritten by the _root attribute of ScrolledCanvas (lines 362 and
382). So in these (hopefully rare) cases where an error message is
directly provoked from the Tkinter module, this will fail letting the
user without clue about what happened.
With the proposed patch applied, the above script produces the correct
error message.
Regards, Gregor
|
|||
| msg76042 - (view) | Author: Martin v. Löwis (loewis) * ![]() |
Date: 2008-11-19 09:15 | |
Thanks for the patch. Committed as r67279, r67280, and r67281. |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022-04-11 14:56:40 | admin | set | github: 48366 |
| 2008-11-19 09:15:21 | loewis | set | status: open -> closed resolution: accepted messages: + msg76042 |
| 2008-11-18 22:17:04 | gregorlingl | set | messages: + msg76021 |
| 2008-10-14 04:52:06 | gregorlingl | set | messages:
+ msg74720 versions: + Python 2.6 |
| 2008-10-13 22:57:07 | gregorlingl | create | |
