Title: gh-59396: Use themed widgets in tkinter.filedialog by serhiy-storchaka · Pull Request #152036 · python/cpython · GitHub
Open Graph Title: gh-59396: Use themed widgets in tkinter.filedialog by serhiy-storchaka · Pull Request #152036 · python/cpython
X Title: gh-59396: Use themed widgets in tkinter.filedialog by serhiy-storchaka · Pull Request #152036 · python/cpython
Description: The FileDialog, LoadFileDialog and SaveFileDialog dialogs, which follow the layout of the classic Motif file selection dialog, are now built from the themed tkinter.ttk widgets by default instead of the classic tkinter widgets, and gained a use_ttk parameter that selects between the classic Tk widgets and the themed ttk widgets. They were also brought closer to the native Tk file dialog: the buttons and field labels gained Alt key accelerators, the default ring follows the keyboard focus and the previous focus and grab are restored on close, the Escape key cancels the dialog, the focus traverses the widgets in their visual order, and the directory and file lists gained a horizontal scrollbar and type-ahead selection. The dialog is now transient and centered over its parent, and the SaveFileDialog overwrite confirmation uses a themed message box. This is the filedialog counterpart of the simpledialog modernization in gh-59396 (#151848); the button and frame metrics follow tk_dialog (classic) and tk::MessageBox (themed), while the body keeps the Motif layout. The Listbox stays classic in both modes, as ttk has no themed listbox; a Treeview-based list is left as a possible follow-up. Issue: gh-59396
Open Graph Description: The FileDialog, LoadFileDialog and SaveFileDialog dialogs, which follow the layout of the classic Motif file selection dialog, are now built from the themed tkinter.ttk widgets by default instead o...
X Description: The FileDialog, LoadFileDialog and SaveFileDialog dialogs, which follow the layout of the classic Motif file selection dialog, are now built from the themed tkinter.ttk widgets by default instead o...
Opengraph URL: https://github.com/python/cpython/pull/152036
X: @github
Domain: github.com
| route-pattern | /:user_id/:repository/pull/:id/files(.:format) |
| route-controller | pull_requests |
| route-action | files |
| fetch-nonce | v2:5fb5c0dc-7e85-be7e-97d6-853171a90e9c |
| current-catalog-service-hash | ae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b |
| request-id | 97AE:17CF54:14B691E:1C67C20:6A53D633 |
| html-safe-nonce | 4e058a845f1cc26a0ea1239032a656eb4d9a804c1de719c0e654f7153e38afbb |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5N0FFOjE3Q0Y1NDoxNEI2OTFFOjFDNjdDMjA6NkE1M0Q2MzMiLCJ2aXNpdG9yX2lkIjoiNjQ4NDI3MjY5MDQ4NzUxNjY3IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | b3bfff0245e0228814bdb3e3214cf00d40a89d468119175c752c4bcc31f871c2 |
| hovercard-subject-tag | pull_request:3923657862 |
| github-keyboard-shortcuts | repository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/python/cpython/pull/152036/files |
| twitter:image | https://avatars.githubusercontent.com/u/3659035?s=400&v=4 |
| twitter:card | summary_large_image |
| og:image | https://avatars.githubusercontent.com/u/3659035?s=400&v=4 |
| og:image:alt | The FileDialog, LoadFileDialog and SaveFileDialog dialogs, which follow the layout of the classic Motif file selection dialog, are now built from the themed tkinter.ttk widgets by default instead o... |
| og:site_name | GitHub |
| og:type | object |
| hostname | github.com |
| expected-hostname | github.com |
| None | b9a586c06a05a7a86fc7e3f4dbd03e42f6869085879aa184aa6369456dbd50fb |
| turbo-cache-control | no-preview |
| diff-view | unified |
| go-import | github.com/python/cpython git https://github.com/python/cpython.git |
| octolytics-dimension-user_id | 1525981 |
| octolytics-dimension-user_login | python |
| octolytics-dimension-repository_id | 81598961 |
| octolytics-dimension-repository_nwo | python/cpython |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 81598961 |
| octolytics-dimension-repository_network_root_nwo | python/cpython |
| turbo-body-classes | logged-out env-production page-responsive full-width |
| disable-turbo | true |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 07a982c1d40157c619b364352b704c3ce66bb332 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width