Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 636a850

Browse files
bpo-39152: add missing ttk.Scale.configure return value (GH-17815)
tkinter.ttk.Scale().configure([name]) now returns a configuration tuple for name or a list thereof for all options. Based on patch Giovanni Lombardo. (cherry picked from commit 5ea7bb2) Co-authored-by: Terry Jan Reedy <[email protected]>
1 parent 34aa3e7 commit 636a850

3 files changed

Lines changed: 9 additions & 11 deletions

File tree

Lib/tkinter/test/widget_tests.py

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import unittest
44
import sys
55
import tkinter
6-
from tkinter.ttk import Scale
76
from tkinter.test.support import (AbstractTkTest, tcl_version, requires_tcl,
87
get_tk_patchlevel, pixels_conv, tcl_obj_eq)
98
import test.support
@@ -63,11 +62,9 @@ def checkParam(self, widget, name, value, *, expected=_sentinel,
6362
eq = tcl_obj_eq
6463
self.assertEqual2(widget[name], expected, eq=eq)
6564
self.assertEqual2(widget.cget(name), expected, eq=eq)
66-
# XXX
67-
if not isinstance(widget, Scale):
68-
t = widget.configure(name)
69-
self.assertEqual(len(t), 5)
70-
self.assertEqual2(t[4], expected, eq=eq)
65+
t = widget.configure(name)
66+
self.assertEqual(len(t), 5)
67+
self.assertEqual2(t[4], expected, eq=eq)
7168

7269
def checkInvalidParam(self, widget, name, value, errmsg=None, *,
7370
keep_orig=True):
@@ -209,9 +206,7 @@ def assertIsBoundingBox(self, bbox):
209206
def test_keys(self):
210207
widget = self.create()
211208
keys = widget.keys()
212-
# XXX
213-
if not isinstance(widget, Scale):
214-
self.assertEqual(sorted(keys), sorted(widget.configure()))
209+
self.assertEqual(sorted(keys), sorted(widget.configure()))
215210
for k in keys:
216211
widget[k]
217212
# Test if OPTIONS contains all keys

Lib/tkinter/ttk.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1084,11 +1084,12 @@ def configure(self, cnf=None, **kw):
10841084
10851085
Setting a value for any of the "from", "from_" or "to" options
10861086
generates a <<RangeChanged>> event."""
1087-
if cnf:
1087+
retval = Widget.configure(self, cnf, **kw)
1088+
if not isinstance(cnf, (type(None), str)):
10881089
kw.update(cnf)
1089-
Widget.configure(self, **kw)
10901090
if any(['from' in kw, 'from_' in kw, 'to' in kw]):
10911091
self.event_generate('<<RangeChanged>>')
1092+
return retval
10921093

10931094

10941095
def get(self, x=None, y=None):
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Fix ttk.Scale.configure([name]) to return configuration tuple for name
2+
or all options. Giovanni Lombardo contributed part of the patch.

0 commit comments

Comments
 (0)