mirror of
https://github.com/python/cpython.git
synced 2025-07-24 11:44:31 +00:00
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.
This commit is contained in:
parent
1e27b57dbc
commit
3d569fd6dc
19 changed files with 315 additions and 87 deletions
|
@ -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) )
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue