mirror of
https://github.com/python/cpython.git
synced 2025-10-06 23:21:06 +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
|
@ -69,7 +69,7 @@ class Font:
|
|||
def __init__(self, root=None, font=None, name=None, exists=False,
|
||||
**options):
|
||||
if not root:
|
||||
root = tkinter._default_root
|
||||
root = tkinter._get_default_root('use font')
|
||||
tk = getattr(root, 'tk', root)
|
||||
if font:
|
||||
# get actual settings corresponding to the given font
|
||||
|
@ -184,7 +184,7 @@ class Font:
|
|||
def families(root=None, displayof=None):
|
||||
"Get font families (as a tuple)"
|
||||
if not root:
|
||||
root = tkinter._default_root
|
||||
root = tkinter._get_default_root('use font.families()')
|
||||
args = ()
|
||||
if displayof:
|
||||
args = ('-displayof', displayof)
|
||||
|
@ -194,7 +194,7 @@ def families(root=None, displayof=None):
|
|||
def names(root=None):
|
||||
"Get names of defined fonts (as a tuple)"
|
||||
if not root:
|
||||
root = tkinter._default_root
|
||||
root = tkinter._get_default_root('use font.names()')
|
||||
return root.tk.splitlist(root.tk.call("font", "names"))
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue