From 168fc8adbc415f2070e7e779c0831c681b4efbe2 Mon Sep 17 00:00:00 2001 From: "Joe S. Boyle" Date: Fri, 27 Jan 2023 12:03:26 +0000 Subject: [PATCH 1/3] Refactor DynOptionMenu's initializer to no longer copy the kwargs dict --- Lib/idlelib/dynoption.py | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/Lib/idlelib/dynoption.py b/Lib/idlelib/dynoption.py index 9c6ffa435a1089..bc157237dc9387 100644 --- a/Lib/idlelib/dynoption.py +++ b/Lib/idlelib/dynoption.py @@ -2,8 +2,6 @@ OptionMenu widget modified to allow dynamic menu reconfiguration and setting of highlightthickness """ -import copy - from tkinter import OptionMenu, _setit, StringVar, Button class DynOptionMenu(OptionMenu): @@ -11,15 +9,11 @@ class DynOptionMenu(OptionMenu): unlike OptionMenu, our kwargs can include highlightthickness """ def __init__(self, master, variable, value, *values, **kwargs): - # TODO copy value instead of whole dict - kwargsCopy=copy.copy(kwargs) - if 'highlightthickness' in list(kwargs.keys()): - del(kwargs['highlightthickness']) + highlightthickness = kwargs.pop('highlightthickness', None) OptionMenu.__init__(self, master, variable, value, *values, **kwargs) - self.config(highlightthickness=kwargsCopy.get('highlightthickness')) - #self.menu=self['menu'] - self.variable=variable - self.command=kwargs.get('command') + self.config(highlightthickness=highlightthickness) + self.variable = variable + self.command = kwargs.get('command') def SetMenu(self,valueList,value=None): """ From 8416b770b10baffe77a074542055b2cd67980db9 Mon Sep 17 00:00:00 2001 From: JosephSBoyle <48555120+JosephSBoyle@users.noreply.github.com> Date: Fri, 27 Jan 2023 16:40:49 +0000 Subject: [PATCH 2/3] Update Lib/idlelib/dynoption.py Co-authored-by: Terry Jan Reedy --- Lib/idlelib/dynoption.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lib/idlelib/dynoption.py b/Lib/idlelib/dynoption.py index bc157237dc9387..f0086012cad49b 100644 --- a/Lib/idlelib/dynoption.py +++ b/Lib/idlelib/dynoption.py @@ -11,7 +11,7 @@ class DynOptionMenu(OptionMenu): def __init__(self, master, variable, value, *values, **kwargs): highlightthickness = kwargs.pop('highlightthickness', None) OptionMenu.__init__(self, master, variable, value, *values, **kwargs) - self.config(highlightthickness=highlightthickness) + self['highlightthickness'] = highlightthickness self.variable = variable self.command = kwargs.get('command') From 1f8c34671ade1b7c7d599fc524e427c4badd4272 Mon Sep 17 00:00:00 2001 From: Terry Jan Reedy Date: Mon, 27 Feb 2023 22:03:07 -0500 Subject: [PATCH 3/3] Improve htest. --- Lib/idlelib/dynoption.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Lib/idlelib/dynoption.py b/Lib/idlelib/dynoption.py index f0086012cad49b..d5dfc3eda13f60 100644 --- a/Lib/idlelib/dynoption.py +++ b/Lib/idlelib/dynoption.py @@ -5,8 +5,9 @@ from tkinter import OptionMenu, _setit, StringVar, Button class DynOptionMenu(OptionMenu): - """ - unlike OptionMenu, our kwargs can include highlightthickness + """Add SetMenu and highlightthickness to OptionMenu. + + Highlightthickness adds space around menu button. """ def __init__(self, master, variable, value, *values, **kwargs): highlightthickness = kwargs.pop('highlightthickness', None) @@ -32,14 +33,15 @@ def _dyn_option_menu(parent): # htest # from tkinter import Toplevel # + StringVar, Button top = Toplevel(parent) - top.title("Tets dynamic option menu") + top.title("Test dynamic option menu") x, y = map(int, parent.geometry().split('+')[1:]) top.geometry("200x100+%d+%d" % (x + 250, y + 175)) top.focus_set() var = StringVar(top) var.set("Old option set") #Set the default value - dyn = DynOptionMenu(top,var, "old1","old2","old3","old4") + dyn = DynOptionMenu(top, var, "old1","old2","old3","old4", + highlightthickness=5) dyn.pack() def update(): @@ -48,5 +50,6 @@ def update(): button.pack() if __name__ == '__main__': + # Only module without unittests because of intention to replace. from idlelib.idle_test.htest import run run(_dyn_option_menu) pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy