This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: ttk.RadioButtons mis-sized under Windows 10 UI Scaling, with dpiAware set true
Type: behavior Stage: resolved
Components: Tkinter Versions: Python 3.9
process
Status: closed Resolution: third party
Dependencies: Superseder:
Assigned To: Nosy List: Athanasius
Priority: normal Keywords:

Created on 2020-10-07 17:02 by Athanasius, last changed 2022-04-11 14:59 by admin. This issue is now closed.

Messages (2)
msg378171 - (view) Author: Athanasius (Athanasius) Date: 2020-10-07 17:02
Having recently looked into UI Scaling for an application I help develop I became aware with an issue involving tkinter.ttk.RadioButton and Windows UI Scaling.

When you have some UI Scaling set along with dpiAware set true you might find that radio buttons are mis-rendered. The usual manifestation of this is that the last button will be properly sized initially, with the others being undersized. If you even only mouse-over the 'correct' radio button it will then become undersized as well.

For more detail see: https://github.com/Athanasius/tk-radio-buttons

NB: This *has* been fixed upstream in the Tcl/Tk source, but I see they've not made a new release since 8.6.10 in November 2019.  Thus this issue is more in the way of a heads up about a bug others might encounter, and will have to wait for newer Tcl/Tk in some version of Python for it to be fixed.

See https://core.tcl-lang.org/tk/info/3c6660b6f0bed337 for the issue and fix.
msg390327 - (view) Author: Athanasius (Athanasius) Date: 2021-04-06 12:57
I excitedy thought that you closing this issue meant that Python 3.9.3 or 3.9.4 had the newer TCL and this fixed.

Sadly not.  I've just had GitHub build a fresh executable using Python 3.9.4 (as evidenced by `Running on Python v3.9.4 (tags/v3.9.4:1f2e308, Apr  4 2021, 13:14:17) [MSC v.1928 32 bit (Intel)]` in our logging) and this is still broken.

Out of a set of three radio buttons only the last is correctly scaled up when first viewed, the other two not being scaled up.  When I changed tab (a notebook) and back, even that third one is now not scaled up.

Any idea when Python will include a fixed TCL ?
History
Date User Action Args
2022-04-11 14:59:36adminsetgithub: 86135
2021-04-06 12:57:38Athanasiussetmessages: + msg390327
2021-04-03 21:47:39terry.reedysetstatus: pending -> closed
stage: resolved
2020-12-15 17:05:47serhiy.storchakasetstatus: open -> pending
resolution: third party
2020-10-07 17:02:37Athanasiuscreate