gh-130482: Add ability to specify name for tkinter.OptionMenu and tkinter.ttk.OptionMenu (GH-130502)
This commit is contained in:
parent
1e9cc3d502
commit
e490c00dac
@ -1372,6 +1372,9 @@ tkinter
|
||||
arguments passed by keyword.
|
||||
(Contributed by Zhikang Yan in :gh:`126899`.)
|
||||
|
||||
* Add ability to specify name for :class:`!tkinter.OptionMenu` and
|
||||
:class:`!tkinter.ttk.OptionMenu`.
|
||||
(Contributed by Zhikang Yan in :gh:`130482`.)
|
||||
|
||||
turtle
|
||||
------
|
||||
|
@ -354,6 +354,11 @@ class OptionMenuTest(MenubuttonTest, unittest.TestCase):
|
||||
with self.assertRaisesRegex(TclError, r"^unknown option -image$"):
|
||||
tkinter.OptionMenu(self.root, None, 'b', image='')
|
||||
|
||||
def test_specify_name(self):
|
||||
widget = tkinter.OptionMenu(self.root, None, ':)', name="option_menu")
|
||||
self.assertEqual(str(widget), ".option_menu")
|
||||
self.assertIs(self.root.children["option_menu"], widget)
|
||||
|
||||
@add_configure_tests(IntegerSizeTests, StandardOptionsTests)
|
||||
class EntryTest(AbstractWidgetTest, unittest.TestCase):
|
||||
_rounds_pixels = (tk_version < (9, 0))
|
||||
|
@ -319,6 +319,12 @@ class OptionMenuTest(AbstractTkTest, unittest.TestCase):
|
||||
textvar.trace_remove("write", cb_name)
|
||||
optmenu.destroy()
|
||||
|
||||
def test_specify_name(self):
|
||||
textvar = tkinter.StringVar(self.root)
|
||||
widget = ttk.OptionMenu(self.root, textvar, ":)", name="option_menu_ex")
|
||||
self.assertEqual(str(widget), ".option_menu_ex")
|
||||
self.assertIs(self.root.children["option_menu_ex"], widget)
|
||||
|
||||
|
||||
class DefaultRootTest(AbstractDefaultRootTest, unittest.TestCase):
|
||||
|
||||
|
@ -4199,7 +4199,7 @@ class OptionMenu(Menubutton):
|
||||
keyword argument command."""
|
||||
kw = {"borderwidth": 2, "textvariable": variable,
|
||||
"indicatoron": 1, "relief": RAISED, "anchor": "c",
|
||||
"highlightthickness": 2}
|
||||
"highlightthickness": 2, "name": kwargs.pop("name", None)}
|
||||
Widget.__init__(self, master, "menubutton", kw)
|
||||
self.widgetName = 'tk_optionMenu'
|
||||
menu = self.__menu = Menu(self, name="menu", tearoff=0)
|
||||
|
@ -1603,7 +1603,8 @@ class OptionMenu(Menubutton):
|
||||
A callback that will be invoked after selecting an item.
|
||||
"""
|
||||
kw = {'textvariable': variable, 'style': kwargs.pop('style', None),
|
||||
'direction': kwargs.pop('direction', None)}
|
||||
'direction': kwargs.pop('direction', None),
|
||||
'name': kwargs.pop('name', None)}
|
||||
Menubutton.__init__(self, master, **kw)
|
||||
self['menu'] = tkinter.Menu(self, tearoff=False)
|
||||
|
||||
|
@ -0,0 +1,2 @@
|
||||
Add ability to specify name for :class:`!tkinter.OptionMenu` and
|
||||
:class:`!tkinter.ttk.OptionMenu`.
|
Loading…
x
Reference in New Issue
Block a user