summaryrefslogtreecommitdiffstats
path: root/Lib/tkinter
Commit message (Collapse)AuthorAgeFilesLines
* [3.12] gh-71592: Add ability to trace Tcl commands executed by Tkinter ↵Serhiy Storchaka2024-05-061-4/+15
| | | | | | | | | | | | | | | | | (GH-118291) (GH-118662) This is an experimental feature, for internal use. Setting tkinter._debug = True before creating the root window enables printing every executed Tcl command (or a Tcl command equivalent to the used Tcl C API). This will help to convert a Tkinter example into Tcl script to check whether the issue is caused by Tkinter or exists in the underlying Tcl/Tk library. (cherry picked from commit 1ff626ebda465931ff3e4922e8e87d586eb6244c) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* [3.12] gh-116484: Fix collisions between Checkbutton and ttk.Checkbutton ↵Miss Islington (bot)2024-03-161-1/+6
| | | | | | | | | | default names (GH-116495) (GH-116901) Change automatically generated tkinter.Checkbutton widget names to avoid collisions with automatically generated tkinter.ttk.Checkbutton widget names within the same parent widget. (cherry picked from commit c61cb507c10c5b597928284e087a9a384ab267d0) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* [3.12] gh-113951: Tkinter: "tag_unbind(tag, sequence, funcid)" now only ↵Miss Islington (bot)2024-02-041-11/+15
| | | | | | | | | | | | | | unbinds "funcid" (GH-113955) (GH-114997) Previously, "tag_unbind(tag, sequence, funcid)" methods of Text and Canvas widgets destroyed the current binding for "sequence", leaving "sequence" unbound, and deleted the "funcid" command. Now they remove only "funcid" from the binding for "sequence", keeping other commands, and delete the "funcid" command. They leave "sequence" unbound only if "funcid" was the last bound command. (cherry picked from commit 7e42fddf608337e83b30401910d76fd75d5cf20a) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* [3.12] gh-110345: show Tcl/Tk patchlevel in `tkinter._test()` (GH-110350) ↵Miss Islington (bot)2024-01-181-1/+1
| | | | | | | (GH-114253) (cherry picked from commit b8f29b1293f55e12e86a2a039b49b6f9f73851b7) Co-authored-by: Christopher Chavez <chrischavez@gmx.us>
* [3.12] gh-113877: Fix Tkinter method winfo_pathname() on 64-bit Windows ↵Miss Islington (bot)2024-01-101-0/+2
| | | | | | | | | | (GH-113900) (GH-113901) winfo_id() converts the result of "winfo id" command to integer, but "winfo pathname" command requires an argument to be a hexadecimal number on Win64. (cherry picked from commit 1b7e0024a16c1820f61c04a8a100498568410afd) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* [3.12] gh-75666: Tkinter: "unbind(sequence, funcid)" now only unbinds ↵Miss Islington (bot)2023-12-061-4/+18
| | | | | | | | | | | | | | | | "funcid" (GH-111322) (GH-112802) Previously, "widget.unbind(sequence, funcid)" destroyed the current binding for "sequence", leaving "sequence" unbound, and deleted the "funcid" command. Now it removes only "funcid" from the binding for "sequence", keeping other commands, and deletes the "funcid" command. It leaves "sequence" unbound only if "funcid" was the last bound command. (cherry picked from commit cc7e45cc572dd818412a649970fdee579417701f) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com> Co-authored-by: GiovanniL <13402461+GiovaLomba@users.noreply.github.com>
* [3.12] gh-111531: Tkinter: fix reference leaks in bind_class() and ↵Miss Islington (bot)2023-10-311-2/+2
| | | | | | | bind_all() (GH-111533) (GH-111535) (cherry picked from commit e3353c498d79f0f3f108a9baf8807a12e77c2ebe) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* [3.12] gh-100814: Fix exception for invalid callable value of Tkinter image ↵Miss Islington (bot)2023-08-161-4/+0
| | | | | | | | | | | option (GH-107692) (#107722) gh-100814: Fix exception for invalid callable value of Tkinter image option (GH-107692) Passing a callable object as an option value to a Tkinter image now raises the expected TclError instead of an AttributeError. (cherry picked from commit 50e3cc9748eb2103eb7ed6cc5a74d177df3cfb13) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* gh-94473: Flatten arguments in tkinter.Canvas.coords() (GH-98479)Serhiy Storchaka2023-05-221-1/+1
| | | | | It now accepts not only "x1, y1, x2, y2, ..." and "[x1, y1, x2, y2, ...]", but also "(x1, y1), (x2, y2), ..." and "[(x1, y1), (x2, y2), ...]".
* gh-103685: Fix tkinter.Menu.index() for Tk 8.7 (#103686)Christopher Chavez2023-04-241-2/+1
| | | | | | --------- Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu> Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
* gh-102799: use exception instance instead of sys.exc_info() (#102885)Irit Katriel2023-03-311-3/+2
|
* gh-102778: Add sys.last_exc, deprecate sys.last_type, ↵Irit Katriel2023-03-181-0/+1
| | | | sys.last_value,sys.last_traceback (#102779)
* gh-57762: fix misleading tkinter.Tk docstring (#98837)Shantanu2022-12-221-1/+1
| | | | Mentioned as a desired change by terryjreedy on the corresponding issue, since Tk is not a subclass of Toplevel.
* gh-97928: Fix handling options starting with "-" in tkinter.Text.count() ↵Serhiy Storchaka2022-10-191-1/+1
| | | | | (GH-98436) Previously they were silently ignored. Now they are errors.
* gh-73588: Fix generation of the default name of tkinter.Checkbutton. (GH-97547)Serhiy Storchaka2022-09-273-3/+13
| | | | | | Previously, checkbuttons in different parent widgets could have the same short name and share the same state if arguments "name" and "variable" are not specified. Now they are globally unique.
* gh-54781: Move Lib/tkinter/test/test_ttk/ to Lib/test/test_ttk/ (#94070)Victor Stinner2022-06-2220-6771/+0
| | | | | | | | | | * Move Lib/tkinter/test/test_tkinter/ to Lib/test/test_tkinter/. * Move Lib/tkinter/test/test_ttk/ to Lib/test/test_ttk/. * Add Lib/test/test_ttk/__init__.py based on test_ttk_guionly.py. * Add Lib/test/test_tkinter/__init__.py * Remove old Lib/test/test_tk.py. * Remove old Lib/test/test_ttk_guionly.py. * Add __main__ sub-modules. * Update imports and update references to rename files.
* gh-84623: Remove unused imports (#94132)Victor Stinner2022-06-222-2/+0
|
* gh-84623: Remove unused imports in stdlib (#93773)Victor Stinner2022-06-131-1/+1
|
* bpo-13553: Document tkinter.Tk args (#4786)Cheryl Sabella2022-05-101-4/+4
|
* gh-91827: Add method info_pathlevel() in tkinter (GH-91829)Serhiy Storchaka2022-05-064-10/+59
|
* bpo-46996: Remove support of Tcl/Tk < 8.5.12 (GH-31839)Serhiy Storchaka2022-03-175-141/+57
|
* bpo-45979: Fix Tkinter tests with old Tk (>= 8.5.12) (GH-31938)Serhiy Storchaka2022-03-162-3/+5
|
* bpo-45496: Allow flexibility in winfo_rgb tests (GH-30185)E-Paine2021-12-261-2/+9
|
* bpo-27313: Use non-deprecated methods for tracing (GH-29425)Serhiy Storchaka2021-11-061-5/+5
|
* bpo-27313: Fix ttk_guionly tests failing on Framework builds on macOS (GH-29411)Łukasz Langa2021-11-051-46/+20
|
* bpo-45160: Fix refleak in test_ttk_guionly introduced in GH-28291 (GH-29416)Łukasz Langa2021-11-051-1/+4
|
* bpo-45160: Ttk optionmenu only set variable once (GH-28291)E-Paine2021-10-212-1/+17
|
* Cleanup a couple of comments left on PR 28775 post-merge. (GH-29079)Gregory P. Smith2021-10-201-1/+1
|
* bpo-45436: Fix tkinter tests with Tcl/Tk 8.6.11+ (GH-29077)Zachary Ware2021-10-202-5/+11
| | | | | | | Since v8.6.11, a few configuration options seem to accept an empty value where they did not previously; particularly the `type` of a `Menu` widget, and the `compound` of any ttk widget with a label. Providing an explicit expected error message to `checkEnumParam` bypasses the check of an empty value, which no longer raises `TclError`.
* bpo-45229: Make tkinter tests discoverable (GH-28637)Serhiy Storchaka2021-10-1314-572/+19
|
* Fix typos in the Lib directory (GH-28775)Christian Clauss2021-10-062-4/+4
| | | | | Fix typos in the Lib directory as identified by codespell. Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
* bpo-25130: Add calls of gc.collect() in tests to support PyPy (GH-28005)Serhiy Storchaka2021-08-294-2/+17
|
* bpo-44404: tkinter `after` support callable classes (GH-26812)E-Paine2021-06-232-1/+12
|
* bpo-41730: Show deprecation warnings for tkinter.tix (GH-22186)wyz23x22021-05-071-1/+8
| | | | Co-authored-by: E-Paine <63801254+E-Paine@users.noreply.github.com> Co-authored-by: Zachary Ware <zach@python.org>
* bpo-43655: Tkinter and IDLE dialog windows are now recognized as dialogs by ↵Serhiy Storchaka2021-04-252-0/+14
| | | | window managers on macOS and X Window (#25187)
* bpo-38659: [Enum] add _simple_enum decorator (GH-25497)Ethan Furman2021-04-212-3/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | add: * `_simple_enum` decorator to transform a normal class into an enum * `_test_simple_enum` function to compare * `_old_convert_` to enable checking `_convert_` generated enums `_simple_enum` takes a normal class and converts it into an enum: @simple_enum(Enum) class Color: RED = 1 GREEN = 2 BLUE = 3 `_old_convert_` works much like` _convert_` does, using the original logic: # in a test file import socket, enum CheckedAddressFamily = enum._old_convert_( enum.IntEnum, 'AddressFamily', 'socket', lambda C: C.isupper() and C.startswith('AF_'), source=_socket, ) `_test_simple_enum` takes a traditional enum and a simple enum and compares the two: # in the REPL or the same module as Color class CheckedColor(Enum): RED = 1 GREEN = 2 BLUE = 3 _test_simple_enum(CheckedColor, Color) _test_simple_enum(CheckedAddressFamily, socket.AddressFamily) Any important differences will raise a TypeError
* Revert "bpo-38659: [Enum] add _simple_enum decorator (GH-25285)" (GH-25476)Ethan Furman2021-04-202-46/+3
| | | This reverts commit dbac8f40e81eb0a29dc833e6409a1abf47467da6.
* bpo-38659: [Enum] add _simple_enum decorator (GH-25285)Ethan Furman2021-04-202-3/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | add: _simple_enum decorator to transform a normal class into an enum _test_simple_enum function to compare _old_convert_ to enable checking _convert_ generated enums _simple_enum takes a normal class and converts it into an enum: @simple_enum(Enum) class Color: RED = 1 GREEN = 2 BLUE = 3 _old_convert_ works much like _convert_ does, using the original logic: # in a test file import socket, enum CheckedAddressFamily = enum._old_convert_( enum.IntEnum, 'AddressFamily', 'socket', lambda C: C.isupper() and C.startswith('AF_'), source=_socket, ) test_simple_enum takes a traditional enum and a simple enum and compares the two: # in the REPL or the same module as Color class CheckedColor(Enum): RED = 1 GREEN = 2 BLUE = 3 _test_simple_enum(CheckedColor, Color) _test_simple_enum(CheckedAddressFamily, socket.AddressFamily) Any important differences will raise a TypeError
* bpo-33289: Return RGB triplet of ints instead of floats from ↵Cheryl Sabella2021-01-214-29/+91
| | | | tkinter.colorchooser (GH-6578)
* bpo-42759: Fix equality comparison of Variable and Font in Tkinter (GH-23968)Serhiy Storchaka2020-12-294-11/+24
| | | | Objects which belong to different Tcl interpreters are now always different, even if they have the same name.
* Rename Tkinter tests for widget options (GH-23944)Serhiy Storchaka2020-12-253-210/+212
| | | | Every test for widget option starts now with "test_configure_" to distinguish it from tests for widget commands.
* bpo-35728: Add root parameter to tkinter.font.nametofont() (GH-23885)Desmond Cheong2020-12-252-2/+17
|
* bpo-42721: Improve using simple dialogs without root window (GH-23897)Serhiy Storchaka2020-12-256-24/+135
| | | | | | | | | | | | | | | | | When simple query dialogs (tkinter.simpledialog), message boxes (tkinter.messagebox) or color choose dialog (tkinter.colorchooser) are created without arguments master and parent, and the default root window is not yet created, a new temporary hidden root window will be created automatically. It will not be set as the default root window and will be destroyed right after closing the dialog window. It will help to use these simple dialog windows in programs which do not need other GUI. Previously, message boxes and color chooser created the blank root window and left it after closing the dialog window, and query dialogs just raised an exception. Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
* bpo-15303: Support widgets with boolean value False in Tkinter (GH-23904)Serhiy Storchaka2020-12-257-29/+29
| | | Use `widget is None` instead of checking the boolean value of a widget.
* bpo-42685: Improve placing of simple query windows. (GH-23856)Serhiy Storchaka2020-12-241-35/+34
| | | | | | * If parent is specified and mapped, the query widget is centered at the center of parent. Its position and size can be corrected so that it fits in the virtual root window. * Otherwise it is centered at the center of the screen.
* bpo-42630: Improve error reporting in Tkinter for absent default root (GH-23781)Serhiy Storchaka2020-12-1915-77/+303
| | | | | | | | | | | * Tkinter functions and constructors which need a default root window raise now RuntimeError with descriptive message instead of obscure AttributeError or NameError if it is not created yet or cannot be created automatically. * Add tests for all functions which use default root window. * Fix import in the pynche script.
* bpo-19733: Re-enable tests for -image option in Tkinter (GH-23785)Serhiy Storchaka2020-12-162-6/+0
|
* bpo-40219: Lowered ttk LabeledScale dummy (GH-21467)E-Paine2020-12-151-1/+4
|
* bpo-42328: Skip some tests with themes vista and xpnative on Windows 7 ↵Serhiy Storchaka2020-12-031-0/+9
| | | | (GH-23612)
* bpo-42142: Try to fix timeouts in ttk tests (GH-23474)Serhiy Storchaka2020-11-302-19/+7
| | | | | Instead of using wait_visibility() which waits event <VisibilityNotify> in dead loop use update() which should proceed all queued events.