diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2020-12-19 10:17:08 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-19 10:17:08 (GMT) |
commit | 3d569fd6dccf9f582bafaca04d3535094cae393e (patch) | |
tree | 2468e1823c476391b2abecc79d093e0cbeb96b0c /Lib/tkinter/tix.py | |
parent | 1e27b57dbc8c1b758e37a531487813aef2d111ca (diff) | |
download | cpython-3d569fd6dccf9f582bafaca04d3535094cae393e.zip cpython-3d569fd6dccf9f582bafaca04d3535094cae393e.tar.gz cpython-3d569fd6dccf9f582bafaca04d3535094cae393e.tar.bz2 |
bpo-42630: Improve error reporting in Tkinter for absent default root (GH-23781)
* Tkinter functions and constructors which need a default root window
raise now RuntimeError with descriptive message instead of obscure
AttributeError or NameError if it is not created yet or cannot
be created automatically.
* Add tests for all functions which use default root window.
* Fix import in the pynche script.
Diffstat (limited to 'Lib/tkinter/tix.py')
-rw-r--r-- | Lib/tkinter/tix.py | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/Lib/tkinter/tix.py b/Lib/tkinter/tix.py index ac54550..ef1e740 100644 --- a/Lib/tkinter/tix.py +++ b/Lib/tkinter/tix.py @@ -387,9 +387,7 @@ class TixWidget(tkinter.Widget): # These are missing from Tkinter def image_create(self, imgtype, cnf={}, master=None, **kw): if not master: - master = tkinter._default_root - if not master: - raise RuntimeError('Too early to create image') + master = self if kw and cnf: cnf = _cnfmerge((cnf, kw)) elif kw: cnf = kw options = () @@ -475,10 +473,7 @@ class DisplayStyle: elif 'refwindow' in cnf: master = cnf['refwindow'] else: - master = tkinter._default_root - if not master: - raise RuntimeError("Too early to create display style: " - "no root window") + master = tkinter._get_default_root('create display style') self.tk = master.tk self.stylename = self.tk.call('tixDisplayStyle', itemtype, *self._options(cnf,kw) ) |