From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Wed, 24 Jun 2026 06:38:52 +0000 (+0200) Subject: [3.15] gh-84008: Document that the LC_NUMERIC locale affects tkinter numeric widgets... X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9bd0199e5b20c9516c2d66b24b6168874f7d98d7;p=thirdparty%2FPython%2Fcpython.git [3.15] gh-84008: Document that the LC_NUMERIC locale affects tkinter numeric widgets (GH-152008) (GH-152049) Spinbox, Scale and ttk.Spinbox format floating-point values according to the LC_NUMERIC locale, but such values are always parsed with a period, so a comma-decimal locale breaks DoubleVar.get(). (cherry picked from commit ee78d4323c174d0281fef5e04e965cda4c46eeb7) Co-authored-by: Serhiy Storchaka Co-authored-by: Claude Opus 4.8 --- diff --git a/Doc/library/tkinter.rst b/Doc/library/tkinter.rst index 86075baadc6a..317bfea9babc 100644 --- a/Doc/library/tkinter.rst +++ b/Doc/library/tkinter.rst @@ -4903,6 +4903,9 @@ Widget classes dropped; *from* is spelled ``from_`` because :keyword:`from` is a Python keyword. + With a non-integer *resolution*, see :ref:`numeric values and the locale + `. + .. method:: get() Return the current value of the scale. @@ -5001,6 +5004,9 @@ Widget classes text. Inherits from :class:`Widget` and :class:`XView`. + With a non-integer *increment*, see :ref:`numeric values and the locale + `. + Many of the methods take an *index* argument identifying a character in the spinbox's string. As described in the Tk ``spinbox`` manual page, *index* may be a numeric @@ -5844,6 +5850,18 @@ Variable classes Return the value of the variable as a :class:`float`. + .. _tkinter-numeric-locale: + + .. note:: + + A floating-point value is always parsed with a period (``.``) as the + decimal separator, but :class:`Spinbox`, :class:`Scale` and + :class:`ttk.Spinbox ` format it according to the + ``LC_NUMERIC`` locale. Under a locale that uses a comma they produce a + value that :meth:`get` cannot read, raising :exc:`TclError`. Set + ``LC_NUMERIC`` to a locale that uses a period (such as ``'C'``) to avoid + this. + .. class:: BooleanVar(master=None, value=None, name=None) diff --git a/Doc/library/tkinter.ttk.rst b/Doc/library/tkinter.ttk.rst index 0f5a8da14457..70abe7bb8465 100644 --- a/Doc/library/tkinter.ttk.rst +++ b/Doc/library/tkinter.ttk.rst @@ -463,6 +463,9 @@ ttk.Spinbox .. class:: Spinbox + With a non-integer increment, see :ref:`numeric values and the locale + `. + .. versionadded:: 3.8 .. method:: get()