bpo-35728: Add root parameter to tkinter.font.nametofont() (GH-23885)

diff --git a/Lib/tkinter/font.py b/Lib/tkinter/font.py
index 7f6ba5a..06ed01b 100644
--- a/Lib/tkinter/font.py
+++ b/Lib/tkinter/font.py
@@ -17,10 +17,10 @@
 ITALIC = "italic"
 
 
-def nametofont(name):
+def nametofont(name, root=None):
     """Given the name of a tk named font, returns a Font representation.
     """
-    return Font(name=name, exists=True)
+    return Font(name=name, exists=True, root=root)
 
 
 class Font:
diff --git a/Lib/tkinter/test/test_tkinter/test_font.py b/Lib/tkinter/test/test_tkinter/test_font.py
index 3f71209..0354c5f 100644
--- a/Lib/tkinter/test/test_tkinter/test_font.py
+++ b/Lib/tkinter/test/test_tkinter/test_font.py
@@ -101,6 +101,11 @@ def test_names(self):
             self.assertTrue(name)
         self.assertIn(fontname, names)
 
+    def test_nametofont(self):
+        testfont = font.nametofont(fontname, root=self.root)
+        self.assertIsInstance(testfont, font.Font)
+        self.assertEqual(testfont.name, fontname)
+
     def test_repr(self):
         self.assertEqual(
             repr(self.font), f'<tkinter.font.Font object {fontname!r}>'
@@ -136,6 +141,16 @@ def test_names(self):
         tkinter.NoDefaultRoot()
         self.assertRaises(RuntimeError, font.names)
 
+    def test_nametofont(self):
+        self.assertRaises(RuntimeError, font.nametofont, fontname)
+        root = tkinter.Tk()
+        testfont = font.nametofont(fontname)
+        self.assertIsInstance(testfont, font.Font)
+        self.assertEqual(testfont.name, fontname)
+        root.destroy()
+        tkinter.NoDefaultRoot()
+        self.assertRaises(RuntimeError, font.nametofont, fontname)
+
 
 tests_gui = (FontTest, DefaultRootTest)