Get the total padding of a Tk widget, including its border.
(widget)
| 30 | "displaylines", return_ints=True) |
| 31 | |
| 32 | def get_widget_padding(widget): |
| 33 | """Get the total padding of a Tk widget, including its border.""" |
| 34 | # TODO: use also in codecontext.py |
| 35 | manager = widget.winfo_manager() |
| 36 | if manager == 'pack': |
| 37 | info = widget.pack_info() |
| 38 | elif manager == 'grid': |
| 39 | info = widget.grid_info() |
| 40 | else: |
| 41 | raise ValueError(f"Unsupported geometry manager: {manager}") |
| 42 | |
| 43 | # All values are passed through getint(), since some |
| 44 | # values may be pixel objects, which can't simply be added to ints. |
| 45 | padx = sum(map(widget.tk.getint, [ |
| 46 | info['padx'], |
| 47 | widget.cget('padx'), |
| 48 | widget.cget('border'), |
| 49 | ])) |
| 50 | pady = sum(map(widget.tk.getint, [ |
| 51 | info['pady'], |
| 52 | widget.cget('pady'), |
| 53 | widget.cget('border'), |
| 54 | ])) |
| 55 | return padx, pady |
| 56 | |
| 57 | |
| 58 | @contextlib.contextmanager |
no test coverage detected
searching dependent graphs…