Код: Выделить всё
import tkinter as tk
import tkinter.ttk
root = tk.Tk()
root.geometry("300x200")
label = tk.ttk.Label(root, background="red")
label.pack()
label.configure(text="Label")
print(label.configure("text")[-1])
label.configure(padding=(100, 50))
print(label.configure("padding")[-1])
root.mainloop()

Глядя на вывод печати, параметр text был возвращен в виде строки «Метка», как и ожидалось. Однако дополнение, несмотря на то, что оно установлено в кортеж целочисленных значений, теперь возвращается как кортеж «пиксельных объектов»:
Код: Выделить всё
Label
(, )
Исследуя Интернет, я нашел несколько разных методов чтения параметров виджета, но все они дают один и тот же результат:
Код: Выделить всё
>>> label.configure("padding")[-1]
(, )
>>> label.cget("padding")
(, )
>>> label["padding"]
(, )
Код: Выделить всё
>>> type(label.configure("padding")[-1][0])
>>> dir(label.configure("padding")[-1][0])
['__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'string', 'typename']
Код: Выделить всё
>>> sys.version
'3.9.2 (default, Feb 28 2021, 17:03:44) \n[GCC 10.2.1 20210110]'
>>> tk.Tcl().call("info", "patchlevel")
'8.6.11'
Код: Выделить всё
>>>> sys.version
'3.11.13 (413c9b7f57f5, Jul 03 2025, 18:03:56)\n[PyPy 7.3.20 with GCC 10.2.1 20210130 (Red Hat 10.2.1-11)]'
>>>> tk.Tcl().call("info", "patchlevel")
'8.6.14'
Код: Выделить всё
>>>> label.configure("padding")[-1]
(100, 50)
Мобильная версия