Created on 2016-09-02 10:20 by goyodiaz, last changed 2017-03-31 16:36 by dstufft. This issue is now closed.
| Files | ||||
|---|---|---|---|---|
| File name | Uploaded | Description | Edit | |
| tkinter_intvar_float_value.patch | serhiy.storchaka, 2016-10-24 14:13 | review | ||
| Pull Requests | |||
|---|---|---|---|
| URL | Status | Linked | Edit |
| PR 552 | closed | dstufft, 2017-03-31 16:36 | |
| Messages (3) | |||
|---|---|---|---|
| msg274223 - (view) | Author: Goyo (goyodiaz) | Date: 2016-09-02 10:20 | |
Calling mainloop after setting the value of a ttk.LabeledScale raises an error. The same happens if the value is set after entering the mainloop. Does not affect python 3.4.3. Does not affect ttk.Scale. No error is raised if you do not call mainloop. import tkinter as tk import tkinter.ttk as ttk root = tk.Tk() w = ttk.LabeledScale(root) w.pack() w.scale.set(1) root.mainloop() Traceback (most recent call last): File "d:\users\u938001\AppData\Local\Programs\Python\Python35-32\lib\tkinter\__init__.py", line 1550, in __call__ return self.func(*args) File "d:\users\u938001\AppData\Local\Programs\Python\Python35-32\lib\tkinter\ttk.py", line 1540, in _adjust newval = self._variable.get() File "d:\users\u938001\AppData\Local\Programs\Python\Python35-32\lib\tkinter\__init__.py", line 355, in get return self._tk.getint(self._tk.globalgetvar(self._name)) TypeError: getint() argument must be str, not float During handling of the above exception, another exception occurred: Traceback (most recent call last): File "itcomp.py", line 8, in <module> root.mainloop() File "d:\users\u938001\AppData\Local\Programs\Python\Python35-32\lib\tkinter\__init__.py", line 1131, in mainloop self.tk.mainloop(n) File "d:\users\u938001\AppData\Local\Programs\Python\Python35-32\lib\tkinter\__init__.py", line 1554, in __call__ self.widget._report_exception() AttributeError: 'IntVar' object has no attribute '_report_exception' |
|||
| msg279307 - (view) | Author: Serhiy Storchaka (serhiy.storchaka) * | Date: 2016-10-24 14:13 | |
This is caused by replacing int() by self._tk.getint() in IntVar.get() (issue23880). But the failure can be reproduced even in 3.4 if set tk.wantobjects = 0 before creating root widget. One way is making getint() accepting floats. This fizes original example, but doesn't solve the issue for tk.wantobjects = 0. Other way is making IntVar.get() falling back to integer part of getdouble(). This fixes the example in both modes. Proposed patch goes this way. |
|||
| msg279732 - (view) | Author: Roundup Robot (python-dev) | Date: 2016-10-30 16:53 | |
New changeset 394b2b4da150 by Serhiy Storchaka in branch '3.5': Issue #27939: Fixed bugs in tkinter.ttk.LabeledScale and tkinter.Scale caused https://hg.python.org/cpython/rev/394b2b4da150 New changeset 91884d043fdc by Serhiy Storchaka in branch '3.6': Issue #27939: Fixed bugs in tkinter.ttk.LabeledScale and tkinter.Scale caused https://hg.python.org/cpython/rev/91884d043fdc New changeset 9e3931aa1ff0 by Serhiy Storchaka in branch 'default': Issue #27939: Fixed bugs in tkinter.ttk.LabeledScale and tkinter.Scale caused https://hg.python.org/cpython/rev/9e3931aa1ff0 |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2017-03-31 16:36:26 | dstufft | set | pull_requests: + pull_request1005 |
| 2016-10-30 16:53:56 | serhiy.storchaka | set | status: open -> closed resolution: fixed stage: patch review -> resolved |
| 2016-10-30 16:53:28 | python-dev | set | nosy:
+ python-dev messages: + msg279732 |
| 2016-10-24 14:13:45 | serhiy.storchaka | set | files:
+ tkinter_intvar_float_value.patch versions: + Python 3.7 messages: + msg279307 assignee: serhiy.storchaka |
| 2016-09-03 01:06:31 | terry.reedy | set | nosy:
+ serhiy.storchaka stage: needs patch type: crash -> behavior versions: + Python 3.6 |
| 2016-09-02 10:20:34 | goyodiaz | create | |